ssis 控制流执行 sql vs 数据流 sql 命令
ssis control flow execute sql vs data flow sql command
我有一个存储过程 (sp_selectClient
),它有一个游标,它在每次迭代中执行一些插入操作。在 sp 的最后一个语句中,我从 table 中选择了结果。
现在我正在创建一个 ssis 包,我是新手。我找到了最简单的方法,即在控制流中添加数据流任务,然后在数据流中添加一个 source(OLEDB)
,在其中设置 SQL 命令 'EXEC sp_selectClient'
。存储过程不接受任何参数。然后我将它映射到 destination(flat file)
。我的问题是我也可以使用 Execute SQL Task
来做到这一点吗?如果是那么这样做的优点和缺点是什么。
是你也可以执行SQL任务。
数据流任务中的 OLE DB 命令: 将始终逐行处理数据
在控制流中执行SQL任务:将批量处理数据
What is the difference between Execute SQL Task and OLE DB Command
如果您的存储过程创建一个结果集,您可以使用执行 SQL 任务并将结果集存储在类型为 Object
的变量中,然后在 [=11= 中循环行].
这些有用的链接可帮助您将 ResultSets
存储在变量中并在 Script Task
:
中循环遍历其行
- How to loop through a generic object in SSIS Script Task
- Implementing Foreach Looping Logic in SSIS
- Execute SQL Task
如果您的存储过程不生成任何结果集(Select 命令),最好使用执行 SQL任务
OLE DB Command
运行 为每一行插入、更新或删除语句,而 Execute SQL Task
在此实例中执行批量插入。这意味着通过您的包的每一行在到达 OLE DB Command
.
时都会有一个插入语句 运行
参考文献:
我有一个存储过程 (sp_selectClient
),它有一个游标,它在每次迭代中执行一些插入操作。在 sp 的最后一个语句中,我从 table 中选择了结果。
现在我正在创建一个 ssis 包,我是新手。我找到了最简单的方法,即在控制流中添加数据流任务,然后在数据流中添加一个 source(OLEDB)
,在其中设置 SQL 命令 'EXEC sp_selectClient'
。存储过程不接受任何参数。然后我将它映射到 destination(flat file)
。我的问题是我也可以使用 Execute SQL Task
来做到这一点吗?如果是那么这样做的优点和缺点是什么。
是你也可以执行SQL任务。
数据流任务中的 OLE DB 命令: 将始终逐行处理数据
在控制流中执行SQL任务:将批量处理数据
What is the difference between Execute SQL Task and OLE DB Command
如果您的存储过程创建一个结果集,您可以使用执行 SQL 任务并将结果集存储在类型为 Object
的变量中,然后在 [=11= 中循环行].
这些有用的链接可帮助您将 ResultSets
存储在变量中并在 Script Task
:
- How to loop through a generic object in SSIS Script Task
- Implementing Foreach Looping Logic in SSIS
- Execute SQL Task
如果您的存储过程不生成任何结果集(Select 命令),最好使用执行 SQL任务
OLE DB Command
运行 为每一行插入、更新或删除语句,而 Execute SQL Task
在此实例中执行批量插入。这意味着通过您的包的每一行在到达 OLE DB Command
.
参考文献: