Sql server SSI从多个过程返回值

Sql server SSI从多个过程返回值,sql-server,stored-procedures,ssis,Sql Server,Stored Procedures,Ssis,我试图从执行SQL任务中运行的多个存储过程返回值,但似乎只有第一个过程调用的结果集返回值。基本上我所做的是: DECLARE @input INT, @input2 INT, @output INT, @output2 INT EXEC dbo.SomeProcedure @input, @output OUTPUT EXEC dbo.SomeProcedure @input2 @output2 OUTPUT SELECT @output A

我试图从执行SQL任务中运行的多个存储过程返回值,但似乎只有第一个过程调用的结果集返回值。基本上我所做的是:

DECLARE @input INT,
        @input2 INT,
        @output INT,
        @output2 INT


EXEC dbo.SomeProcedure @input, @output OUTPUT
EXEC dbo.SomeProcedure @input2 @output2 OUTPUT

SELECT @output AS Output1,
        @output2 AS Output2

是否有办法在Exec SQL任务中运行多个过程,将值分配给本地SQL变量,然后将这些变量的值返回给SSIS?

执行SQL任务无法处理多个结果集。如果必须在单个任务中处理多个结果集,一种方法是使用脚本任务。有更多的细节和示例代码

然而,要完成您在问题中描述的任务,您不必在单个任务中完成,如果您只使用两个执行SQL任务,那么您的包将更易于阅读和维护


如果您有创建存储过程的权限,第三个选项是编写一个包装过程,该过程调用其他过程,并根据需要将其结果合并为一个结果。

执行SQL任务无法处理多个结果集。如果必须在单个任务中处理多个结果集,一种方法是使用脚本任务。有更多的细节和示例代码

然而,要完成您在问题中描述的任务,您不必在单个任务中完成,如果您只使用两个执行SQL任务,那么您的包将更易于阅读和维护


如果您有创建存储过程的权限,第三种选择是编写一个包装过程,调用其他过程,并根据需要将它们的结果合并到一个结果。

我认为这会起作用。您将返回一个包含两列的结果集。您是否在您的程序中设置了无计数?仅仅一个过程有效吗?把它拆开,直到你找到问题,我会认为这是可行的。您将返回一个包含两列的结果集。您是否在您的程序中设置了无计数?仅仅一个过程有效吗?将其分解,直到找到问题