Foreach 循环容器 ADO 枚举器迭代数据库对象。本文档演示了如何配置 SSIS Foreach 循环 ADO 枚举器,以将记录从一个 SQL 数据库传输到另一个数据库,并附有示例。
为了演示这一点,我们在数据库中使用“员工”表。

将“执行 SQL 任务”拖放到 SSIS 控制流区域。接下来,创建变量以保存记录。由于“员工”表有六列(ID 除外),我们创建了六个变量,外加一个 Object 类型变量以存储完整的查询结果集。

双击“执行 SQL 任务”,将“ResultSet”更改为“Full result set”,然后从现有连接中选择连接。接下来,单击浏览按钮以编写 SQL 语句。编写图像中显示的第一个代码,或使用下面的代码。
SELECT * FROM Employee

将 User::ResultSet 变量名称分配给结果集。

SSIS Foreach 循环 ADO 枚举器示例
将 Foreach 循环容器拖放到控制流区域。

双击它将打开编辑器。首先,将“Loop Enumerator type”更改为“SSIS Foreach ADO Enumerator”。接下来,选择 User::ResultSet 作为 ADO 对象源变量。
对于其余的迭代器,

选择枚举模式。在此,我们选择了“Rows in the First table”。

在“Variable mappings”选项卡下,选择我们之前创建的变量。请注意,索引顺序必须与表列匹配。

将“执行 SQL 任务”添加到 Foreach 循环 ADO 枚举器容器中。

双击以打开编辑器,然后选择用于存储记录的连接。我们在 SQL 语句中使用 INSERT 语句(通过 SQL 链接)通过参数加载记录。
INSERT INTO [dbo].[ADO Enumerator]
([FirstName],[LastName] ,[Education],[Occupation],[YearlyIncome],[Sales],[HireDate])
VALUES (?, ?, ?, ?, ?, ?, ?)

转到“Parameter Mapping”选项卡,分配变量名称,并更改数据类型以匹配目标表。

运行 SSIS Foreach 循环 ADO 枚举器包。

打开 SQL Server Management Studio 查看输出。
