The SSIS Foreach ADO.NET Schema Rowset Enumerator is used to enumerate the SQL Server Objects. For example, you can use this enumerator to loop over the Views, Schema, Tables, Indexes, Constraints etc present in a Database. In this article we will show you, 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
In this example, we will enumerate views present in Adventure Works 2014 database and copy the View name, Schema names into another database table. In order to do so, First Drag and drop the Foreach Loop Container into the Control Flow region as shown below
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
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.
Once you select the enumerator, two new properties are appeared.
- 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.
First, we will configure the Connection. To do so, click on the down arrow button and select the New Connection.. button to create new one or else select the existing connection manager (if any).
Once you click on the New Connection.. button, Connection manager Editor will be opened to configure it. For this example, we are selecting PRASAD as server instance and we are using Windows authentication.
Next, please select the schema that you want to loop. Here we are selecting Views.
This window has one more button called Set restrictions.. Let me show you the properties inside this button by clicking it
You can use this window to restricts the data returned by the Foreach Loop.
As you can from the above screenshot, our information schema of Views will return three columns. So, let me created three variables of type string. Next select the variables and assign it to index 0, 1, 2 as we shown in below screenshot. Once you are done, Click OK to finish configuring the Foreach Loop Container.
Next, Drag and drop the Execute SQL Task from toolbox to Foreach loop container. This task will help us to insert the new values into our Empty table.
Double click on it will open the Execute SQL Task Editor window. From the below screenshot you can observe that, we selected OLE DB as Connection type and selected the existing connection which is pointing to [SQL Tutorials] Database.
TIP: Please refer the OLE DB Connection manager article to understand the steps involved in creating new OLE DB Connection.
Next, we are writing the following SQL Query.
INSERT INTO [dbo].[AdventureWorksViews] (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME)
VALUES (?, ?, ?)
Here three question marks will be replaced by three parameter.
Please cross check all the properties before you start parameter mapping
Next, go to parameter mapping and select the parameter that we assigned in Foreach Loop container. It means, Foreach loop container will loop through the Views present in AdventureWorks database and store them in these variables. Next we are passing those variables into Execute SQL task
Click OK to finish configuring the SSIS Foreach ADO.NET Schema Rowset Enumerator package. Let us Run the package
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
Now, let me restrict the table schema to Sales only.
Now you can see, it is only returning the Views with Sales schema
Below screenshot will show you the schema details for the Adventure Works 2014
Thank You for Visiting Our Blog