我有一个存储过程:myProcedure
最后返回2个不同的结果集,如:
select * from #alldata where <condition1>
和
select * from #allData where <condition2>
请注意,我不允许修改SP。
我需要获取从SP返回的第二个(最后一个)结果集并将其保存在SSIS 2012中的临时表中。
我设法通过使用包含以下行的脚本任务来完成:
DataSet ds = db.ExecStoredProcedureDataSet("[myProcedure]", sqlFilters).Tables[1];
我想知道是否有一种方法可以通过使用“执行SQL任务”来代替。
当我检查以下主题时,似乎SP仅返回一个结果集是有可能的,但是在我的情况下SP返回多个结果集并且我需要在临时目录中保存最后一个结果集时找不到方法仅表。任何帮助将不胜感激。
Insert results of a stored procedure into a temporary table
编辑:它不是所指示主题的重复,我需要一个可以在SSIS控制流中的“执行SQL任务”过程中使用的解决方案。
答案 0 :(得分:2)
来自Mac:
如果Execute SQL任务使用完整结果集结果集,并且 查询返回多个行集,任务仅返回第一个 行集。如果此行集生成错误,则任务将报告错误。 如果其他行集产生错误,则该任务不会报告它们。
因此,SSIS执行SQL任务无法从单个proc访问多个结果集。只能访问第一个。