Foreach 循环编辑器(“集合”页)

使用**“Foreach 循环编辑器”对话框的“集合”**页,可以指定枚举器类型并配置枚举器。

若要了解 Foreach 循环容器及其配置方式,请参阅 Foreach 循环容器如何配置 Foreach 循环容器

静态选项

  • Enumerator
    从列表中选择枚举器类型。此属性具有下表所列的选项:

    说明

    Foreach 文件枚举器

    枚举文件。选择此值将显示“Foreach 文件枚举器”部分中的动态选项。

    Foreach Item 枚举器

    枚举项中的值。选择此值将显示“Foreach Item 枚举器”部分中的动态选项。

    Foreach ADO 枚举器

    枚举表或表中的行。选择此值将显示“Foreach ADO 枚举器”部分中的动态选项。

    Foreach ADO.NET 架构行集枚举器

    枚举架构。选择此值将显示“Foreach ADO.NET 枚举器”部分中的动态选项。

    Foreach 源变量枚举器

    枚举变量中的值。选择此值将显示“Foreach 源变量枚举器”部分中的动态选项。

    Foreach Nodelist 枚举器

    枚举 XML 文档中的节点。选择此值将显示“Foreach Nodelist 枚举器”部分中的动态选项。

    Foreach SMO 枚举器

    枚举 SMO 对象。选择此值将显示“Foreach SMO 枚举器”部分中的动态选项。

  • Expressions
    单击或展开 Expressions 可以查看现有属性表达式的列表。单击省略号按钮 (…) 可以添加枚举器属性的属性表达式,或编辑并计算现有属性表达式。

    相关主题:Integration Services 表达式参考, 属性表达式编辑器, 表达式生成器

枚举器动态选项

Enumerator = Foreach 文件枚举器

您可以使用 Foreach 文件枚举器枚举文件夹中的文件。例如,如果 Foreach 循环包括执行 SQL 任务,则可以使用 Foreach 文件枚举器枚举包含执行 SQL 任务运行的 SQL 语句的文件。可以将枚举器配置为包括子文件夹。

Foreach 文件枚举器枚举的文件夹和子文件夹的内容可能在执行循环时发生更改,因为循环中的外部进程或任务会在执行循环时添加、重命名或删除文件。这意味着可能会出现许多意外情况:

  • 如果删除文件,则 Foreach 循环中的某个任务可能会处理一组与后续任务所用的文件不同的文件。

  • 如果重命名文件并且外部进程自动添加文件以替换重命名的文件,则 Foreach 循环可能针对相同的文件内容执行两次操作。

  • 如果添加文件,则可能很难确定 Foreach 循环要处理的文件。

  • 文件夹
    提供要枚举的根文件夹的路径。

  • 浏览
    浏览以定位到根文件夹。

  • 文件
    指定要枚举的文件。

    当指定文件扩展名时,枚举器还会返回与所追加的附加字符具有相同扩展名的文件。(这与操作系统中的 dir 命令的行为相同,该命令也会比较 8.3 文件名以检查是否具有向后兼容性。)枚举器的这种行为可能会导致意外的结果。例如,您只想枚举 Excel 2003 文件且指定了“*.xls”。但是,枚举器还会返回 Excel 2007 文件,因为这些文件具有扩展名“.xlsx”。

    注意注意

    使用通配符可以指定要包括在集合中的文件。

  • 完全限定名称
    选择此项可以检索文件名的完全限定路径。如果在“文件”选项中指定通配符,则返回的完全限定路径与该筛选条件匹配。

  • 仅名称
    选择此项可以只检索文件名。如果在“文件”选项中指定了通配符,则返回的文件名与该筛选条件匹配。

  • 名称和扩展名
    选择此项可以检索文件名及其文件扩展名。如果在“文件”选项中指定通配符,则返回的文件名和文件扩展名与该筛选条件匹配。

  • 遍历子文件夹
    选择此项可以在枚举中包括子文件夹。

Enumerator = Foreach Item 枚举器

您可以使用 Foreach Item 枚举器枚举集合中的项。您将通过指定一个和多个列的值来定义集合中的项。一行中的列将定义一个项。例如,指定执行进程任务运行的可执行文件以及此任务所用的工作目录的项包含两列,一列列出可执行文件的名称,另一列列出工作目录。行数决定循环重复的次数。如果表有 10 行,则循环重复 10 次。

若要更新执行进程任务的属性,可以使用列索引将变量映射到项列。枚举器项中定义的第一列的索引值为 0,第二列的索引值为 1,依次类推。变量值将随着循环的每次重复而更新。然后,可以通过使用这些变量的属性表达式更新执行进程任务的 Executable 和 WorkingDirectory 属性。

  • 定义 For Each Item 集合中的项
    为表中的每个列提供值。

    注意注意

    在行列中输入值后,新行将自动添加到表中。

    注意注意

    如果所提供的值与列数据类型不兼容,则文本以红色显示。

  • 列数据类型
    列出活动列的数据类型。

  • 删除
    选择项,再单击**“删除”**,即可从列表中删除它。


  • 单击此项可以配置项中的列的数据类型。

    相关主题:For Each Item 列

Enumerator = Foreach ADO 枚举器

您可以使用 Foreach ADO 枚举器枚举变量中存储的 ADO 或 ADO.NET 对象中的行或表。例如,如果 Foreach 循环包括可将数据集写入变量的脚本任务,则可以使用 Foreach ADO 枚举器枚举数据集中的行。如果变量包含 ADO.NET 数据集,则可以将枚举器配置为枚举多个表中的行或枚举表。

  • ADO 对象源变量
    从列表中选择用户定义的变量,或单击**“<新建变量...>”**创建新变量。

    注意注意

    变量必须有 Object 数据类型,否则会发生错误。

    相关主题:Integration Services 变量添加变量

  • 第一个表中的行
    选择此项将只枚举第一个表中的行。

  • 所有表中的行(仅限于 ADO.NET 数据集)
    选择此项将枚举所有表中的行。只有当要枚举的对象是同一 ADO.NET 数据集的所有成员时,此选项才可用。

  • 所有表(仅限于 ADO.Net 数据集)
    选择此项将只枚举表。

Enumerator = Foreach ADO.NET 架构行集枚举器

您可以使用 Foreach ADO.NET 架构行集枚举器枚举指定数据源的架构。例如,如果 Foreach 循环包括执行 SQL 任务,则可以使用 Foreach ADO.NET 架构行集枚举器枚举架构(例如,AdventureWorks 数据库中的列),使用执行 SQL 任务获取架构权限。

  • 连接
    从列表中选择 ADO.NET 连接管理器,或单击**“<新建连接...>”**创建新的 ADO.NET 连接管理器。

    重要说明重要提示

    ADO.NET 连接管理器必须使用 .NET provider for OLE DB。如果连接到 SQL Server,则建议使用的访问接口为“连接管理器”对话框的 .Net Providers for OleDb 部分中列出的 SQL Server Native Client。

    相关主题:ADO 连接管理器配置 ADO.NET 连接管理器

  • 架构
    选择要枚举的架构。

  • 设置限制
    设置要应用于指定架构的限制。

    相关主题:架构限制

Enumerator = Foreach 源变量枚举器

您可以使用 Foreach 源变量枚举器枚举指定变量中的可枚举对象。例如,如果 Foreach 循环包括运行查询并在变量中存储结果的执行 SQL 任务,则可以使用 Foreach 源变量枚举器枚举查询结果。

Enumerator = Foreach NodeList 枚举器

您可以使用 Foreach Nodelist 枚举器枚举一组通过将 XPath 表达式应用到 XML 文件而生成的 XML 节点。例如,如果 Foreach 循环包括脚本任务,则可以使用 Foreach NodeList 枚举器将满足 XPath 表达式条件的值从 XML 文件传递到脚本任务。

应用到 XML 文件的 XPath 表达式为外部 XPath 运算,存储于 OuterXPathString 属性中。如果 XPath 枚举类型设置为 ElementCollection,则 Foreach NodeList 枚举器可以将内部 XPath 表达式(存储于 InnerXPathString 属性中)应用到元素集合。

若要了解有关使用 XML 文档和数据的详细信息,请参阅 MSDN Library 中的“Employing XML in the .NET Framework”。

  • DocumentSourceType
    选择 XML 文档的源类型。此属性具有下表所列的选项:

    说明

    直接输入

    将源设置为 XML 文档。

    文件连接

    选择包含 XML 文档的文件。

    变量

    将源设置为包含 XML 文档的变量。

  • DocumentSource
    如果将 DocumentSourceType 设置为**“直接输入”,请提供 XML 代码,或单击省略号按钮 (…) 以通过使用“文档源编辑器”**对话框来提供 XML。

    如果将 DocumentSourceType 设置为**“文件连接”,请选择文件连接管理器,或单击“<新建连接...>”**以创建新的连接管理器。

    相关主题:文件连接管理器文件连接管理器编辑器

    如果将 DocumentSourceType 设置为**“变量”,请选择现有变量,或单击“<新建变量...>”**以创建新的变量。

    相关主题:Integration Services 变量添加变量

  • EnumerationType
    从列表中选择枚举类型。此属性具有下表所列的选项:

    说明

    Navigator

    使用 XPathNavigator 进行枚举。

    Node

    枚举 XPath 运算返回的节点。

    NodeText

    枚举 XPath 运算返回的文本节点。

    ElementCollection

    枚举 XPath 运算返回的元素节点。

  • OuterXPathStringSourceType
    选择 XPath 字符串的源类型。此属性具有下表所列的选项:

    说明

    直接输入

    将源设置为 XML 文档。

    文件连接

    选择包含 XML 文档的文件。

    变量

    将源设置为包含 XML 文档的变量。

  • OuterXPathString
    如果将 OuterXPathStringSourceType 设置为**“直接输入”**,请提供 XPath 字符串。

    如果将 OuterXPathStringSourceType 设置为**“文件连接”,请选择文件连接管理器,或单击“<新建连接...>”**以创建新的连接管理器。

    相关主题:文件连接管理器文件连接管理器编辑器

    如果将 OuterXPathStringSourceType 设置为**“变量”,请选择现有变量,或单击“<新建变量...>”**以创建新的变量。

    相关主题:Integration Services 变量添加变量

  • InnerElementType
    如果将 EnumerationType 设置为 ElementCollection,请在列表中选择内部元素的类型。

  • InnerXPathStringSourceType
    选择内部 XPath 字符串的源类型。此属性具有下表所列的选项:

    说明

    直接输入

    将源设置为 XML 文档。

    文件连接

    选择包含 XML 文档的文件。

    变量

    将源设置为包含 XML 文档的变量。

  • InnerXPathString
    如果将 InnerXPathStringSourceType 设置为**“直接输入”**,请提供 XPath 字符串。

    如果 InnerXPathStringSourceType 设置为**“文件连接”,请选择文件连接管理器,或单击“<新建连接...>”**以创建新的连接管理器。

    相关主题:文件连接管理器文件连接管理器编辑器

    如果将 InnerXPathStringSourceType 设置为**“变量”,请选择现有变量,或单击“<新建变量...>”**以创建新的变量。

    相关主题:Integration Services 变量添加变量

Enumerator = Foreach SMO 枚举器

您可以使用 Foreach SMO 枚举器枚举 SQL Server 管理对象 (SMO) 对象。例如,如果 Foreach 循环包括执行 SQL 任务,则可以使用 Foreach SMO 枚举器枚举 AdventureWorks 数据库中的表并运行计算每个表中行数的查询。