2017-02-27 148 views
1

我有一个存储过程(sp_selectClient),它有一个游标,它在每次迭代中执行一些插入操作。在sp的最后一个陈述中,我从表中选择了结果。ssis控制流执行sql vs数据流sql命令

现在我正在创建一个ssis包,我是新手。我发现最简单的方法是在控制流中添加数据流任务,然后在数据流I中添加一个source(OLEDB),其中我设置了SQL命令'EXEC sp_selectClient'。存储过程不接受任何参数。然后我将它映射到destination(flat file)。我的查询是我可以用Execute SQL Task来做到这一点。如果是的话,那么这样做的优点和缺点是什么。

回答

0

处理数据如果存储过程创建结果集,则可以使用“执行SQL任务”并将结果集存储在类型为Object的变量中执行此操作。然后在内循环遍历行210。

这些usefuls链接,可以帮助您存储ResultSets变量内环路在其行的Script Task内:

如果您存储过程不会生成任何ResultSet(选择命令)是指每行的执行SQL任务

OLE DB Command运行插入,更新或删除语句,而Execute SQL Task确实在这种情况下批量插入的最佳实践。这意味着通过你的包的每一行都会有一个插入语句,当它到达OLE DB Command时运行。

参考文献: