首页 文章

ssis控制流执行sql vs data flow sql命令

提问于
浏览
1

我有一个存储过程( sp_selectClient )有一个游标,它在每次迭代中执行一些插入操作 . 在sp的最后一个陈述中,我从表中选择了结果 .

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

2 回答

  • 0

    Yes 你也可以用 Execute SQL task 做同样的事情 .

    数据流任务中的OLE DB命令:将始终逐行处理数据

    在控制流中执行SQL任务:将批量处理数据

    What is the difference between Execute SQL Task and OLE DB Command

  • 0

    如果存储过程创建结果集,则可以使用“执行SQL任务”并将Resultsets存储在 Object 类型的变量中,然后循环 Script Task 内的行 .

    这些是有用的链接,可以帮助您在变量中存储 ResultSets 并在 Script Task 内的循环上循环:

    If your stored procedure does not produce any ResultSets (Select command) it is best practice to use an Execute SQL Task

    OLE DB Command 为每行运行插入,更新或删除语句,而 Execute SQL Task 在此实例中执行批量插入 . 这意味着通过包的每一行都会在到达 OLE DB Command 时运行一个insert语句 .

    References:

相关问题