我有一个存储过程(sp_selectClient
),它有一个游标,在每次迭代中执行一些插入操作。在sp的最后一个陈述中,我从表中选择了结果。
现在我正在创建一个ssis包,我是新手。我通过在控制流中添加数据流任务找到了最简单的方法,然后在数据流中添加了一个source(OLEDB)
,其中我设置了SQL命令'EXEC sp_selectClient'
。存储过程不接受任何参数。然后我将其映射到destination(flat file)
。我的查询是,我也可以使用Execute SQL Task
执行此操作。如果是,那么这样做的优点和缺点是什么。
答案 0 :(得分:0)
是您也可以对执行SQL任务执行相同操作。
数据流任务中的OLE DB命令:将始终逐行处理数据
在控制流中执行SQL任务:将批量处理数据
What is the difference between Execute SQL Task and OLE DB Command
答案 1 :(得分:0)
如果存储过程创建结果集,则可以使用“执行SQL任务”并将结果集存储在Object
类型的变量中,然后循环遍历Script Task
内的行。
这些有用的链接可以帮助您将ResultSets
存储在变量中并循环遍历Script Task
内的行:
如果存储过程未生成任何ResultSet(选择命令),最佳做法是使用执行SQL任务
OLE DB Command
为每行运行插入,更新或删除语句,而Execute SQL Task
在此实例中执行批量插入。这意味着通过包的每一行都会在到达OLE DB Command
时运行插入语句。
<强>参考文献:强>