SSIS Foreach ADO.NET Schema Rowset Enumerator

The SSIS Foreach ADO.NET Schema Rowset Enumerator is used to enumerate the SQL Server Objects. For example, you can use this SSIS Foreach ADO.NET Schema Rowset to loop over the Views, Schema, Tables, Indexes, Constraints, etc., present in a Database.

In this article, we will show how to find the Views in a SQL Server Database using SSIS Foreach ADO.NET Schema Rowset Enumerator with example.

SSIS Foreach ADO.NET Schema Rowset Enumerator Example

For the SSIS Foreach ADO.NET Schema Rowset Enumerator demo purpose, we will enumerate views present in Adventure Works 2014 database. And copy the View name, Schema names into another database table. To do so, First Drag and drop the Foreach Loop Container into the Control Flow region as shown below

SSIS Foreach ADO.NET Schema Rowset Enumerator 1

Double click on it will open the Foreach Loop Editor to configure it. Within the General tab, Please specify valid and more meaningful Name and Description. From the below screenshot, you can see that we changed the default name to SSIS Foreach ADO.NET Schema Rowset Enumerator

SSIS Foreach ADO.NET Schema Rowset Enumerator 2

Next, go to the Collections tab to select the Enumerator and configure the connections. From the below screenshot, you can observe that we are selecting Foreach ADO.NET Schema Rowset Enumerator because we want to loop over the views present in our Adventure Works 2014 database.

For the remaining ones.

  1. ADO Enumerator
  2. File Enumerator
  3. Item Enumerator
  4. NodeList Enumerator
  5. SMO Enumerator
  6. Variable Enumerator
SSIS Foreach ADO.NET Schema Rowset Enumerator 3

Once you select the SSIS Foreach ADO.NET Schema Rowset Enumerator, two new properties appear.

  • Connection: You have to specify the connection that will connect with the database.
  • Schema: This drop-down list has several options, such as Tables, Views, Constraints, Indexing, etc.
SSIS Foreach ADO.NET Schema Rowset Enumerator 4

First, we will configure the Connection. To do so, click on the down arrow button and select the New Connection.. button to create a new one, or else select the existing connection manager (if any).

SSIS Foreach ADO.NET Schema Rowset Enumerator 5

Once you click the New Connection.. button, Connection Manager Editor opens to configure it. For this example, we are selecting PRASAD as a server instance and using Windows authentication.

Native Client Connection Manager

Next, please select the schema that you want to loop. Here we are selecting Views.

For each ADO.NET Schema Row set Enumerator Editor

This window has one more button called Set Restrictions.. Let me show you the properties inside this button by clicking it.

SSIS Foreach ADO.NET Schema Rowset Enumerator 8

You can use this window to restrict the data returned by the Foreach Loop.

SSIS Foreach ADO.NET Schema Rowset Enumerator 9

As you can see from the above screenshot, our information schema of Views will return three columns. So, let me create three variables of type string. Next, select the variables and assign them to index 0, 1, and 2. Once you complete, Click OK to finish configuring the Foreach Loop Container.

SSIS Foreach ADO.NET Schema Rowset Enumerator 11

Next, Drag and drop the Execute SQL Task from the toolbox to the Foreach loop container. This task will help us to insert the new values into our Empty table.

SSIS Foreach ADO.NET Schema Rowset Enumerator 12

Double click on it will open the Execute SQL Task Editor window. Here, we selected OLE DB as the Connection type. And we chose the existing connection, which points to the [SQL Tutorials] Database.

TIP: Please refer to the OLE DB Connection manager article to understand the steps involved in creating a new OLE DB Connection.

SSIS Foreach ADO.NET Schema Rowset Enumerator 13

Next, we are writing the following Query.

INSERT INTO [dbo].[AdventureWorksViews] (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME)
                                 VALUES (?, ?, ?)

Here three question marks will be replaced by a three-parameter.

SSIS Foreach ADO.NET Schema Rowset Enumerator 14

Please cross-check all the properties before you start parameter mapping

SSIS Foreach ADO.NET Schema Rowset Enumerator 15

Next, go to parameter mapping and select the parameter we assigned in the Foreach Loop container. It means the Foreach loop container will loop through the Views present in the AdventureWorks database and store them in these variables. Next, we pass those variables into Execute SQL task.

SSIS Foreach ADO.NET Schema Rowset Enumerator 16

Click OK to finish configuring the SSIS Foreach ADO.NET Schema Rowset Enumerator package. Let us Run the package

SSIS Foreach ADO.NET Schema Rowset Enumerator 17

Let us open the SQL Server management studio and check whether we inserted the views into the destination table using Foreach ADO.NET Schema Rowset Enumerator or not

SSIS Foreach ADO.NET Schema Rowset Enumerator 18

Now, let me restrict the table schema to Sales only.

SSIS Foreach ADO.NET Schema Rowset Enumerator 19

Now you can see it only returns the Views with the Sales schema.

SSIS Foreach ADO.NET Schema Rowset Enumerator 20

The below screenshot will show you the schema details for Adventure Works.

For each ADO.NET Schema Rowset Table Schema

Comments are closed.