对 SSIS 中 table 中的每一行执行存储过程
Execute stored procedure for each row in the table in SSIS
我想为 table MyTable
中的每一行执行带有特定输入参数的存储过程 MyProc
。每行的列将充当 MyProc
的输入值。
如何在 SSIS 中完成此操作?上级让我使用SSIS,在这件事上我别无选择。
所以..我做了以下事情:
- 创建包
- 创建执行SQL任务
- 在 ExecuteSQLTask
中创建了查询
- 创建 Foreach 循环容器
- 在 Foreach 循环容器中创建数据流任务。
- 我在内部数据流任务中创建了 OLE DB 源
- 将 OLEDBSource 连接到派生列
- 在步骤 3.3 的连接中启用 DataViewer
似乎正在为步骤 2.1 中的所有行调用步骤 3.1 中的 DataFlowTask
我想要的是在步骤 3.1 中调用 DataFlowTask 以针对所有记录对步骤 2.1 中的行中的每条记录进行调用。
一旦这个工作,那么我打算 ExecuteSQLTask
里面 ForEachLoopContainer
.
您只需要一个带有 OLEDB 源和 OLE DB 命令转换的数据流任务。
您要对其执行逐行存储过程的 table 中的 OLEDB 源 SELECT。
然后是调用存储过程并将列从数据流传递到存储过程的参数的 OLE DB 命令转换。
这将导致存储过程对 table 的每一行执行一次。您不需要初始执行 SQL,也不需要 For-Each 循环。
我想为 table MyTable
中的每一行执行带有特定输入参数的存储过程 MyProc
。每行的列将充当 MyProc
的输入值。
如何在 SSIS 中完成此操作?上级让我使用SSIS,在这件事上我别无选择。
所以..我做了以下事情:
- 创建包
- 创建执行SQL任务
- 在 ExecuteSQLTask 中创建了查询
- 创建 Foreach 循环容器
- 在 Foreach 循环容器中创建数据流任务。
- 我在内部数据流任务中创建了 OLE DB 源
- 将 OLEDBSource 连接到派生列
- 在步骤 3.3 的连接中启用 DataViewer
似乎正在为步骤 2.1 中的所有行调用步骤 3.1 中的 DataFlowTask
我想要的是在步骤 3.1 中调用 DataFlowTask 以针对所有记录对步骤 2.1 中的行中的每条记录进行调用。
一旦这个工作,那么我打算 ExecuteSQLTask
里面 ForEachLoopContainer
.
您只需要一个带有 OLEDB 源和 OLE DB 命令转换的数据流任务。
您要对其执行逐行存储过程的 table 中的 OLEDB 源 SELECT。
然后是调用存储过程并将列从数据流传递到存储过程的参数的 OLE DB 命令转换。
这将导致存储过程对 table 的每一行执行一次。您不需要初始执行 SQL,也不需要 For-Each 循环。