65.9K
CodeProject 正在变化。 阅读更多。
Home

在 SSIS 中使用 Foreach ADO 枚举器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.69/5 (11投票s)

2006年6月4日

2分钟阅读

viewsIcon

348770

SSIS 内置了循环功能。在本文中,我想演示如何使用 SSIS 的 Foreach ADO 枚举器循环遍历 SQL Server 名称列表,并收集关于它们的一些基本数据(例如,名称、语言、版本等)。

引言

本例的目的是收集关于 SQL Server 列表的一些基本数据,例如服务器名称、服务名称、语言等。服务器列表存储在 SQL Server 表 ("Server") 中;收集到的数据应该存储在表 "ServerSetup" 中

Tables

我们首先在 Visual Studio 2006 中创建一个 SSIS 包。需要检查的服务器列表通过使用“执行 SQL 任务”从我们的 SQL Server 数据库中读取。我们需要将 SQL 查询的结果集写入一个变量。循环稍后将遍历此变量中所有表的所有行。 指定“完整结果集”很重要;如果您不设置此选项,您将无法将结果集存储到变量中。

Execute SQL Task

在您输入 SQL 语句并设置了“结果集”选项后,您必须切换到“结果集”窗格并指定要存储结果集的变量的名称。变量的类型必须为“对象

Execute SQL Task

下一步是创建我们的 Foreach ADO 循环。 如下图所示,您必须指定我们写入“执行 SQL 任务”结果集的变量:

Loop Configuration

此外,我们还必须指定第二个变量(类型为 String!),循环将把结果集中每一行的内容写入该变量。变量的内容将从一次迭代到另一次迭代发生变化

Loop Configuration

此图显示了您为运行此示例必须定义的变量的摘要

Variables Overview

在循环内部,我们使用数据流任务从我们的各种 SQL Server 获取基本数据。到目前为止,我们的控制流应该看起来像这样

SSIS Control Flow

下一步是创建我们的源连接。首先,我们创建一个指向我们要从中收集数据的任何 SQL Server 的静态连接

Source Connection

其次,我们使用连接的属性来指定一个表达式,通过该表达式,连接的连接字符串将被更改为 Foreach ADO 循环更改的变量中的连接字符串

Connection Expression

最后但并非最不重要的一点是,我们定义了目标连接并映射了字段

Destination Connection

最后,我们包的数据流应该看起来像这样

SSIS Data Flow

试试吧!您将看到 Foreach ADO 循环会自动更改变量 ConnectionString 的内容,并且您会在目标表中接收到关于所有 SQL Server 的基本数据。

历史

  • 2006年6月4日:初始帖子
© . All rights reserved.