SSIS Foreach ADO.NET Schema Rowset 枚举器用于枚举 SQL Server 对象。例如,您可以使用此 SSIS Foreach ADO.NET Schema Rowset 枚举器来循环遍历数据库中的视图、架构、表、索引、约束等。
在本文中,我们将演示如何使用 SSIS Foreach ADO.NET Schema Rowset 枚举器和示例来查找 SQL Server 数据库中的视图。
SSIS Foreach ADO.NET Schema Rowset 枚举器示例
为了进行 SSIS Foreach ADO.NET Schema Rowset 枚举器演示,我们将枚举 Adventure Works 2014 数据库中的视图。并将视图名称、架构名称复制到另一个数据库表中。为此,首先将 Foreach Loop Container 拖放到 Control Flow 区域,如下图所示:

双击它将打开 Foreach Loop Editor 进行配置。在“General”选项卡中,请指定有效且更有意义的名称和描述。从下面的屏幕截图中,您可以看到我们将默认名称更改为 SSIS Foreach ADO.NET Schema Rowset Enumerator。

接下来,转到“Collections”选项卡选择枚举器并配置连接。从下面的屏幕截图中,您可以看到我们正在选择 Foreach ADO.NET Schema Rowset Enumerator,因为我们想要循环遍历 Adventure Works 2014 数据库中的视图。
对于其余的。

选择 SSIS Foreach ADO.NET Schema Rowset 枚举器后,会出现两个新属性。
- Connection:您需要指定将连接到数据库的连接。
- Schema:此下拉列表包含多个选项,例如 Tables、Views、Constraints、Indexing 等。

首先,我们将配置连接。为此,请单击向下箭头按钮并选择“New Connection..”按钮来创建一个新的连接,或者选择现有的连接管理器(如果有)。

单击“New Connection..”按钮后,将打开 Connection Manager Editor 进行配置。在此示例中,我们将 PRASAD 选为服务器实例并使用 Windows 身份验证。

接下来,请选择要循环的架构。这里我们选择 Views。

此窗口还有一个名为 Set Restrictions.. 的按钮。点击该按钮,让我向您展示该按钮内的属性。

您可以使用此窗口限制 Foreach Loop 返回的数据。

从上面的屏幕截图中可以看出,我们的视图信息架构将返回三列。因此,我将创建三个字符串类型的变量。接下来,选择变量并将它们分配给索引 0、1 和 2。完成配置后,单击“OK”完成 Foreach Loop Container 的配置。

接下来,将 Execute SQL Task 从工具箱拖放到 Foreach loop container 中。此任务将帮助我们将新值插入到我们的空表中。

双击它将打开 Execute SQL Task Editor 窗口。在这里,我们选择 OLE DB 作为连接类型。并且我们选择了指向 [SQL Tutorials] 数据库的现有连接。
提示:请参阅 OLE DB Connection manager 文章以了解创建新的 OLE DB Connection 所涉及的步骤。

接下来,我们编写以下查询。
INSERT INTO [dbo].[AdventureWorksViews] (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME)
VALUES (?, ?, ?)
这里的三个问号将被三个参数替换。

在开始参数映射之前,请仔细检查所有属性。

接下来,转到 Parameter Mapping 并选择我们在 Foreach Loop 容器中分配的参数。这意味着 Foreach loop 容器将循环遍历 AdventureWorks 数据库中的视图并将它们存储在这些变量中。接下来,我们将这些变量传递到 Execute SQL task。

单击“OK”完成 SSIS Foreach ADO.NET Schema Rowset Enumerator 包的配置。让我们运行该包。

让我们打开 SQL Server management studio 并检查我们是否已使用 Foreach ADO.NET Schema Rowset Enumerator 将视图插入到目标表中。

现在,让我将表架构限制为仅 Sales。

现在您可以看到它只返回 Sales 架构的视图。

下面的屏幕截图将显示 Adventure Works 的架构详细信息。

评论已关闭。