如何直接将存储过程输出设置为变量

时间:2018-04-26 20:01:35

标签: sql sql-server stored-procedures

有没有办法在不创建临时表的情况下将存储过程的输出设置为SQL中的变量?

我在想像

这样的东西

set (var1, var2, etc) = exec name_of_stored_procedure(arg1, arg2, etc)

1 个答案:

答案 0 :(得分:2)

这取决于。如果存储过程返回标量值,则应将它们作为输出参数传递。这是最好的方法。考虑修改程序。

如果存储过程具有返回值的SELECT语句,那么请考虑切换到输入参数。我不喜欢这种方式使用存储过程。但SQL Server允许您将最后SELECT的结果放入表中:

create table t (
    var1 . . . ,
    var2 . . . ,
    . . .
);

insert into t
    exec(name_of_stored_procedure(arg1, arg2, . . .));

documentation中描述了这一点。

哦,我是否提到使用OUTPUT参数来返回标量值? ;)