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

Sql 如何将存储过程输出直接设置为变量,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,有没有一种方法可以在不创建临时表的情况下将存储过程的输出设置为SQL中的变量 我在想 set(var1、var2等)=存储过程(arg1、arg2等)的exec名称视情况而定。如果存储过程返回标量值,则应将它们作为输出参数传入。这是最好的方法。考虑修改过程。 如果存储过程具有返回值的选择< /代码>语句,那么,考虑切换到输入参数。我不喜欢这样使用存储过程。但是SQL Server允许您将上一次SELECT的结果放入一个表中: create table t ( var1 . . . ,

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

我在想


set(var1、var2等)=存储过程(arg1、arg2等)的exec名称

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

如果存储过程具有返回值的<代码>选择< /代码>语句,那么,考虑切换到输入参数。我不喜欢这样使用存储过程。但是SQL Server允许您将上一次

SELECT
的结果放入一个表中:

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

insert into t
    exec(name_of_stored_procedure(arg1, arg2, . . .));
这在中进行了描述


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

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

如果存储过程具有返回值的<代码>选择< /代码>语句,那么,考虑切换到输入参数。我不喜欢这样使用存储过程。但是SQL Server允许您将上一次

SELECT
的结果放入一个表中:

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

insert into t
    exec(name_of_stored_procedure(arg1, arg2, . . .));
这在中进行了描述


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

程序会返回什么?我想这个问题还有很多。。。拥有变量后,你会如何处理它们?将它们传递到其他过程中。过程会返回什么?我认为这个问题还有更多。。。拥有变量后,您将如何处理它们?将它们传递到其他过程中。同意输出参数部分,但我打赌“如何”将是他们的下一个问题:)同意输出参数部分,但我打赌“如何”将是他们的下一个问题:)