【问题标题】:SSIS return values from multiple proceduresSSIS 从多个过程返回值
【发布时间】:2017-09-19 11:56:28
【问题描述】:

我正在尝试从在执行 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?

【问题讨论】:

  • 我认为这会起作用。您将返回一个包含两列的结果集。你的进程中有SET NOCOUNT ON 吗?只有一个proc有效吗?分解它,直到你找到问题

标签: sql-server stored-procedures ssis


【解决方案1】:

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

但是,按照您在问题中描述的操作,您不必在单个任务中完成,如果您只使用两个执行 SQL 任务,您的程序包将更易于阅读和维护。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-25
    • 2023-04-04
    • 2015-10-06
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    相关资源
    最近更新 更多