有没有办法在不创建临时表的情况下将存储过程的输出设置为SQL中的变量?
我在想像
这样的东西 set (var1, var2, etc) = exec name_of_stored_procedure(arg1, arg2, etc)
答案 0 :(得分:2)
这取决于。如果存储过程返回标量值,则应将它们作为输出参数传递。这是最好的方法。考虑修改程序。
如果存储过程具有返回值的SELECT
语句,那么请考虑切换到输入参数。我不喜欢这种方式使用存储过程。但SQL Server允许您将最后SELECT
的结果放入表中:
create table t (
var1 . . . ,
var2 . . . ,
. . .
);
insert into t
exec(name_of_stored_procedure(arg1, arg2, . . .));
documentation中描述了这一点。
哦,我是否提到使用OUTPUT参数来返回标量值? ;)