我目前有2个存储过程...
存储过程#1根据一系列标准返回产品列表
存储过程#2接受单个productID并执行一些复杂的查询逻辑并将结果写入表
我的问题是有超过30,000个产品,并且从存储过程#1中一次一个地查看结果集太慢,我无法轻松地将整个批量调用集成到存储过程#2
我的问题如下:使用SSIS有一种方法可以设置一个任务,该任务将从存储过程#1中获取结果集,并与每一行并行调用存储过程#2。 / p>
EXAMPLE of Stored Proc 1 result set
-----------------------------------
Product ID
----------
ABC123
XYZ987
AAABBB
CCCDDD
EEEFFF
I need to setup SSIS to call the following in parallel:
-------------------------------------------------------
EXEC StoredProc2 'ABC123'
EXEC StoredProc2 'XYZ987'
EXEC StoredProc2 'AAABBB'
EXEC StoredProc2 'CCCDDD'
EXEC StoredProc2 'EEEFFF'
答案 0 :(得分:1)
哎呀,这是SP#2的许多执行。你可以这样做。
创建数据流任务。将OLE DB Source组件添加到数据流。编辑组件并将其配置为执行SP#1。您可以在编辑器中查看列以查看将从组件输出的内容。
添加OLE DB命令数据流转换组件。创建从第一个组件到OLE DB命令组件的链接。编辑组件并输入将在“组件属性”选项卡上的SqlCommand属性中运行SP#2的SQL语句。为SP的每个参数添加问号(?)。
选择Column Mappings选项卡。将输入列与每个参数相关联。