像函数一样使用存储过程

时间:2011-05-13 01:56:34

标签: sql sql-server dynamic-sql

我需要将表名作为变量处理。然后我必须使用动态sql,因此我必须使用存储过程。 但问题是我如何像自定义sql函数一样使用存储过程。

例如:从table1中选择col1,(Exec sp1 param1,'tbName')

3 个答案:

答案 0 :(得分:1)

最后,我改变了我的设计,并在一个上层使用动态SQL。

答案 1 :(得分:0)

这将在sql server denali中引入新的关键字“WITH RESULT SET”。

当前sql版本的替代方法是将临时表传递给存储过程

答案 2 :(得分:0)

存储过程可以通过输出参数返回标量值。这是一个例子(来自here)。

像这样创建存储的prodecure:

CREATE PROCEDURE _4P_test 
  @intInput int,
  @intOutput int OUTPUT
AS
set @intOutput = @intInput + 1 
go

这样称呼:

declare @intResult int
exec _4P_test 3 ,@intResult OUT
select @intResult

但是,您应该尝试设计系统,这样就不必像您描述的那样使用动态SQL。