一个输入参数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 个或多个存储过程会出现上述错误。
- 使用 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;
这样做会抑制查询中的多个结果集
我正在尝试使用 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 个或多个存储过程会出现上述错误。
- 使用 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;
这样做会抑制查询中的多个结果集