步骤 2:添加和配置 Foreach 循环容器

在此任务中,你将添加循环访问平面文件文件夹的功能,并将第 1 课中使用的相同数据流转换应用于每个平面文件。 实现方法是将 Foreach 循环容器添加到控制流中并进行配置。

所添加的 Foreach 循环容器必须能够连接到该文件夹中的每个平面文件。 由于该文件夹中的所有文件都具有相同的格式,因此,Foreach 循环容器可以使用同一平面文件连接管理器来连接其中的每个文件。 容器将使用的平面文件连接管理器与第 1 课中创建的平面文件连接管理器相同。

目前,第 1 课中的平面文件连接管理器仅连接到一个特定的平面文件。 若要迭代连接到文件夹中的每个平面文件,必须配置 Foreach 循环容器和平面文件连接管理器,如下所示:

  • Foreach 循环容器: 将容器的枚举值映射到用户定义的包变量。 然后,容器将使用此用户定义的变量动态修改 ConnectionString 平面文件连接管理器的属性,并迭代连接到文件夹中的每个平面文件。

  • 平面文件连接管理器: 你将使用用户定义的变量修改第 1 课中创建的连接管理器,以填充连接管理器 ConnectionString 的属性。

此任务中的过程演示如何创建和修改 Foreach 循环容器,以使用用户定义的包变量并将数据流任务添加到循环。 你将了解如何修改平面文件连接管理器,以在下一个任务中使用用户定义的变量。

对包进行这些修改后,运行包时,Foreach 循环容器将循环访问 Sample Data 文件夹中的文件集合。 每次找到与条件匹配的文件时,Foreach 循环容器都会使用文件名填充用户定义的变量,将用户定义的变量映射到 ConnectionString 示例货币数据平面文件连接管理器的属性,然后针对该文件运行数据流。 因此,在 Foreach 循环的每个迭代中,数据流任务将使用不同的平面文件。

注释

由于 MicrosoftIntegration Services 将控制流与数据流分开,因此添加到控制流的任何循环都不需要修改数据流。 因此,不必更改在第 1 课中创建的数据流。

添加 Foreach 循环容器

  1. SQL Server Data Tools 中,单击“ 控制流 ”选项卡。

  2. 在“SSIS 工具箱” 中,展开“容器” ,然后将“Foreach 循环容器” 拖到“控制流” 选项卡的设计图面上。

  3. 右键单击新添加的 Foreach 循环容器 ,然后选择“ 编辑”。

  4. Foreach 循环编辑器 对话框中的 “常规 ”页上,对于 “名称”,请输入 Foreach File in Folder。 单击 “确定”

  5. 右键单击 Foreach 循环容器,单击“属性”,然后在“属性”窗口中,验证属性LocaleID是否已设置为英语(美国)。

为 Foreach 循环容器配置枚举器

  1. 双击文件夹中的 Foreach 文件以重新打开 Foreach 循环编辑器

  2. 单击 集合

  3. 在“集合” 页上,选择“Foreach 文件枚举器” 。

  4. 枚举器配置 组中,单击“ 浏览”。

  5. 在“ 浏览文件夹 ”对话框中,找到计算机上包含Currency_*.txt 文件的文件夹。

    此示例数据包含在 SSIS 课程包中。 若要下载示例数据和课程包,请执行以下作。

    1. 请访问 Integration Services 产品示例

    2. 单击“ 下载 ”选项卡。

    3. 单击超链接“https://msftisprodsamples.codeplex.com/downloads/get/578097"SQL2012.Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip 文件”。

  6. “文件 ”框中,键入 Currency_*.txt

将枚举器映射到用户定义的变量

  1. 单击 “变量映射”。

  2. “变量映射 ”页上的“ 变量 ”列中,单击空单元格并选择“ <新建变量...”>

  3. 在“ 添加变量 ”对话框中,对于 “名称”,请键入 varFileName

    重要

    变量名称区分大小写。

  4. 单击 “确定”

  5. 再次单击 “确定 ”退出 Foreach 循环编辑器 对话框。

将数据流任务添加到循环

  • 提取示例货币数据流 任务拖到 Foreach 循环容器上,现在已重命名 Foreach File in Folder

下一课任务

步骤 3:修改平面文件连接管理器

另请参阅

配置 Foreach 循环容器
在包中使用变量