我需要将表名作为变量处理。然后我必须使用动态sql,因此我必须使用存储过程。 但问题是我如何像自定义sql函数一样使用存储过程。
例如:从table1中选择col1,(Exec sp1 param1,'tbName')
答案 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。