一个输入参数SSIS执行多个存储过程

Execute multiple stored procedures with one input parameter SSIS

我正在尝试使用 Execute SQL Task 在 SSIS 中仅使用一个输入参数来执行多个存储过程,但我不断收到此错误:

[Execute SQL Task] Error: Executing the query "EXEC sample_stored_proc1..." failed with the following error: "Value does not fall within the expected range.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

下面是 SQL TASK 中用于调用存储过程的示例代码:

EXEC sample_stored_proc1 ?;
EXEC sample_stored_proc2 ?;
EXEC sample_stored_proc3 ?;

注释

  1. 我尝试了仅包含 1 个存储过程的代码并且它可以工作,但是添加 1 个或多个存储过程会出现上述错误。
  2. 使用 OLE DB 连接

我找到了一个解决方案,我创建了一个带有输入参数的新存储过程,并将其放入 EXECUTE SQL TASK 中。这将用于执行上面的所有存储过程。

ALTER PROCEDURE [dbo].[xp_EXEC_ALL_sample_SPs] @Start_Date as DATE
AS
BEGIN
        EXECUTE sample_stored_proc1 @Start_Date;
        EXECUTE sample_stored_proc2 @Start_Date;
        EXECUTE sample_stored_proc3 @Start_Date;

END

如果有更好的解决办法请告诉我

当你执行一个存储过程时它returns一个执行状态,所以当你运行三个过程它返回多个结果集时,你可以简单地忽略[=11=返回的结果集]

DECLARE @result int;
DECLARE @start_date DATE = ?;
EXEC @result = sample_stored_proc1 @start_date;
EXEC @result = sample_stored_proc2 @start_date;
EXEC @result = sample_stored_proc3 @start_date;

这样做会抑制查询中的多个结果集