代码之家  ›  专栏  ›  技术社区  ›  KVNA

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

  •  0
  • KVNA  · 技术社区  · 6 年前

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

    我在想

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   Gordon Linoff    6 年前

    视情况而定。如果存储过程返回标量值,则应将其作为输出参数传入。这是最好的方法。考虑修改程序。

    如果存储过程具有 SELECT 返回值的语句,请考虑切换到输入参数。我不喜欢这样使用存储过程。但是SQL Server让您将 选择 进入表格:

    create table t (
        var1 . . . ,
        var2 . . . ,
        . . .
    );
    
    insert into t
        exec(name_of_stored_procedure(arg1, arg2, . . .));
    

    这在 documentation

    哦,我提到过使用输出参数返回标量值吗?;)