<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://vsteamsystemcentral.com/cs21/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Applied Business Intelligence</title><subtitle type="html" /><id>http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/atom.aspx</id><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/default.aspx" /><link rel="self" type="application/atom+xml" href="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61129.2">Community Server</generator><updated>2007-08-28T14:53:00Z</updated><entry><title>SSIS Design Pattern - Collect Enterprise SQL Server Database Metadata With SSIS</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/08/27/collect-enterprise-sql-server-database-metadata-with-ssis.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/08/27/collect-enterprise-sql-server-database-metadata-with-ssis.aspx</id><published>2008-08-27T06:06:00Z</published><updated>2008-08-27T06:06:00Z</updated><content type="html">&lt;P&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A few months back I received an email from a nice lady who was beginning to work with SSIS. She was trying to use SSIS to automate metadata collection in her enterprise and she had made&amp;nbsp;a good start in the package she attached to the email. She had a few questions so I opened the package and began poking around some to answer them. I realized it would take me a lot longer to type out answers to her questions than to simply build the SSIS package for her (or at least make a good start). So I did. This post is about that package.&lt;/P&gt;
&lt;P&gt;I've built similar stuff in the past to monitor the schemas of data warehouse sources. "Why would you do such a thing, Andy?"&amp;nbsp;I know this will come as a shock to you: Sometimes developers and DBAs make changes to the schemas of data warehouse sources and don't tell the data warehouse people. Ok, I made that part up - that never happens. But think about how you could address the issue if it ever happened. Hypothetically.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;First Things First&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There are a couple approaches&amp;nbsp;to collecting SQL Server database metadata.&amp;nbsp;My preference is&amp;nbsp;to automate the process to the point that I can drop it almost anywhere and get results with a minimal amount of tinkering and tweaking. For me, this means my development process is iterative because I never get things right the first time. Ever.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;This Version&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The current version of this package is striped 0.4. The version I write about here is&amp;nbsp;version 0.1.&amp;nbsp;It serves to introduce the principles and functionality in a less complex way - allowing you the Reader to take the project in any direction you deem cool. But that means there's stuff missing from this SSIS package that I would normally include. Stuff like error handling and logging, for example.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A Place For My Data&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before I started I decided&amp;nbsp;to store the data in&amp;nbsp;a SQL Server database. You don't need the database for the SSIS part of the project described in this post. You can simply skip the tasks that write the metadata to the database. But if you&amp;nbsp;skip them&amp;nbsp;and I decide to write about version 0.2, you will come back and want the database scripts. You can download them &lt;A class="" href="http://vsteamsystemcentral.com/dnn/Articles/EnterpriseDBMetadata/tabid/116/Default.aspx" target=_blank&gt;here&lt;/A&gt; (free registration required).&lt;/P&gt;
&lt;P&gt;In this post, I am not going to focus on the database I designed. Like the SSIS package, this is version 0.1 of the database. There is no attempt at referential integrity in this version. It is a simple, single-pass effort at designing a landing zone for this data.&lt;/P&gt;
&lt;H4&gt;A. The Servers&lt;/H4&gt;
&lt;P&gt;&lt;STRONG&gt;Servers? Raise Your Hands Please&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Create a new SSIS&amp;nbsp;project and name it EnterpriseDBMetadata. Name the package EnterpriseDBMetadata.dtsx. &lt;/P&gt;
&lt;P&gt;Create the following&amp;nbsp;package-scoped variables (in alphabetical order):&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ColumnDataType (String)&lt;/LI&gt;
&lt;LI&gt;ColumnName (String)&lt;/LI&gt;
&lt;LI&gt;ColumnNames (Object)&lt;/LI&gt;
&lt;LI&gt;ColumnObjectID (Int32)&lt;/LI&gt;
&lt;LI&gt;DatabaseId (Int32)&lt;/LI&gt;
&lt;LI&gt;DatabaseName (String)&lt;/LI&gt;
&lt;LI&gt;DatabaseNames (Object)&lt;/LI&gt;
&lt;LI&gt;DatabaseObjectId (Int32)&lt;/LI&gt;
&lt;LI&gt;saSQLServers (Object)&lt;/LI&gt;
&lt;LI&gt;SchemaId (Int32)&lt;/LI&gt;
&lt;LI&gt;SchemaName (String)&lt;/LI&gt;
&lt;LI&gt;SchemaNames (Object)&lt;/LI&gt;
&lt;LI&gt;SchemaObjectId (Int32)&lt;/LI&gt;
&lt;LI&gt;SQLServerId (Int32)&lt;/LI&gt;
&lt;LI&gt;SQLServerInstanceName (String)&lt;/LI&gt;
&lt;LI&gt;TablesAndViewsId (Int32)&lt;/LI&gt;
&lt;LI&gt;TablesAndViewsName (String)&lt;/LI&gt;
&lt;LI&gt;TablesAndViewsNames (Object)&lt;/LI&gt;
&lt;LI&gt;TablesAndViewsObjectId (Int32)&lt;/LI&gt;
&lt;LI&gt;TablesAndViewsType (String)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;IMG style="WIDTH:485px;HEIGHT:556px;" height=556 src="http://vsteamsystemcentral.com/images/ext/EntDBMetdata_1.png" width=485&gt;&lt;/P&gt;
&lt;P&gt;Add&amp;nbsp;a Script Task to the Control Flow and rename it Enumerate SQL Server Instances. Editing the Script Task,&amp;nbsp;add saSQLServers to the ReadWriteVariables property:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:580px;HEIGHT:138px;" height=138 src="http://vsteamsystemcentral.com/images/ext/EntDBMetdata_2.png" width=580&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Click the Design Script button to open&amp;nbsp;the Visual Studio for Applications (VSA) script designer and, in Project Explorer,&amp;nbsp;right-click References to add references to the Microsoft.SqlServer.Smo, Microsoft.SqlServer.SmoEnum, and Microsoft.SqlServer.SqlEnum assemblies:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:316px;HEIGHT:322px;" height=322 src="http://vsteamsystemcentral.com/images/ext/EntDBMetdata_3.png" width=316&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Next&amp;nbsp;add&amp;nbsp;the following VB.Net code to the script designer:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Data&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Math&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Microsoft.SqlServer.Dts.Runtime&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Microsoft.SqlServer.Management.Smo&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Microsoft.SqlServer.Management.Common&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ScriptMain&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Main()&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; oSmo &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SmoApplication&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dtSQLServers &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DataTable = oSmo.EnumAvailableSqlServers()&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iSQLServerCount &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = dtSQLServers.Rows.Count - 1&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; i &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = 0&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; saSQLServers() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSQLServerInstanceName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReDim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; saSQLServers(iSQLServerCount)&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Each&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; row &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DataRow &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;In&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dtSQLServers.Rows&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;sSQLServerInstanceName = row(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Name"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;'MsgBox(sSQLServerInstanceName)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;saSQLServers(i) = sSQLServerInstanceName&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"saSQLServers"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value = saSQLServers&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;Dts.TaskResult = Dts.Results.Success&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp; End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;BR&gt;&lt;BR&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;This is a handy piece of code. It basically creates a list of all the SQL Server instances it can locate on your network and shoves that list into an SSIS variable called saSQLServers.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Shredding The List&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Steve Jones -&amp;nbsp;my&amp;nbsp;friend, fellow SQL Server MVP, and editor&amp;nbsp;of &lt;A class="" href="http://www.sqlservercentral.com/" target=_blank&gt;SQL Server Central&lt;/A&gt;&amp;nbsp;- was kind enough to publish a recent &lt;A class="" href="http://www.sqlservercentral.com/articles/SSIS/64014/" target=_blank&gt;article&lt;/A&gt; I wrote about using the Foreach Loop Container to &lt;EM&gt;shred&lt;/EM&gt; object variables. You can read more about that &lt;A class="" href="http://www.sqlservercentral.com/articles/SSIS/64014/" target=_blank&gt;here&lt;/A&gt;. Shredding is just a fancy word (we call them "$3 words" here in Farmville) for reading individual items in a collection.&lt;/P&gt;
&lt;P&gt;Next drop a Foreach Loop Container onto the Control Flow and connect the Script Task to it with a Success Precedence Constraint:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:389px;HEIGHT:241px;" height=241 src="http://vsteamsystemcentral.com/images/ext/EntDBMetdata_4.png" width=389&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Double-click the Foreach Loop Container to open the editor. On the General page&amp;nbsp;rename it ForEach SQL Server Instance.&amp;nbsp;Select the Foreach From Variable Enumerator on the Collection page, and then select the saSQLServers variable:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:610px;HEIGHT:234px;" height=234 src="http://vsteamsystemcentral.com/images/ext/EntDBMetdata_5.png" width=610&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;On the Variable Mappings page, map the SQLServerInstanceName variable to Index 0. There's only one column of items in my saSQLServers variable - it's an SSIS object variable, but it contains a single-dimension String array:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:435px;HEIGHT:86px;" height=86 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_6.png" width=435&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Click the Ok button to close the Foreach Loop Container editor.&lt;/P&gt;
&lt;P&gt;Let's take a moment to talk about what we did. We have a variable named saSQLServers that is populated by the Script Task with a list of all the SQL Server instances it can identify on the network. The Foreach Loop Container shreds this variable, walking through each value - each SQL Server instance name, in this case - one at a time. Each pass, it pushes the value of one of those SQL Server instance names into a variable called SQLServerInstanceName.&lt;/P&gt;
&lt;P&gt;In and of itself, this is pretty cool.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Destination Connection&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Now we need to connect our SSIS package to SQL Server so we can store the name of the servers we can reach. Right-click inside the Connection Managers window at the bottom of the Control Flow and select New OLE DB Connection:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:269px;HEIGHT:322px;" height=322 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_7.png" width=269&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When the Configure OLE DB Connection Manager form displays, click the New button to display the Connection Manager editor. In the Server Name dropdown, enter the name of the SQL Server instance to which you deployed the EnterpriseDBMetadata &lt;A class="" href="http://vsteamsystemcentral.com/dnn/Articles/EnterpriseDBMetadata/tabid/116/Default.aspx" target=_blank&gt;scripts&lt;/A&gt;. In the "Select or enter a database name" dropdown, select EnterpriseDBMetadata:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:600px;HEIGHT:599px;" height=599 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_8.png" width=600&gt;&lt;/P&gt;
&lt;P&gt;I always recommend testing the connection. Click the Test Connection button to verify connectivity, then click the Ok button to close the Connection Manager editor. Then click the Ok button again to close the Configure OLE DB Connection Manager.&lt;/P&gt;
&lt;P&gt;Rename this connection "EnterpriseDBMetadata.OLEDB".&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Source Connection&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I can hear you thinking "Gosh Andy, you did that backwards! Most people start at the source and &lt;EM&gt;then&lt;/EM&gt; talk about the destination." Yeah, I know. But I'm an engineer at heart and engineers are not normal people. &lt;/P&gt;
&lt;P&gt;How many source Connection Managers do we need?&lt;/P&gt;
&lt;P&gt;"That's a trick question Andy, I &lt;EM&gt;know&lt;/EM&gt; it! But I think we need one for each SQL Server instance out there."&lt;/P&gt;
&lt;P&gt;You are partially correct. It is a trick question -&amp;nbsp;you're right about that. We do need one source Connection Manager for each SQL Server instance, but we are only going to be connected to one SQL Server instance at a time as we&amp;nbsp;iterate through our Foreach Loop Container. So we can get away with one source Connection Manager if we can only find a way to aim it at the individual&amp;nbsp;SQL Server instance we wish, when we wish it.&lt;/P&gt;
&lt;P&gt;So let's do that.&lt;/P&gt;
&lt;P&gt;Create another OLE DB Connection Manager as you did before. This time configure it to connect to a local or developement instance to which you can connect using Windows Authentication. Configure the database name as before and click the Ok buttons to end the Connection Manager creation.&lt;/P&gt;
&lt;P&gt;Rename this Connection Manager "SQLServerInstance.OLEDB".&lt;/P&gt;
&lt;P&gt;Right-click the SQLServerInstance.OLEDB Connection Manager and select Properties. Click on the Expressions Property and then click the ellipsis in the Value textbox for the Expressions Property:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;IMG style="WIDTH:417px;HEIGHT:464px;" height=464 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_9.png" width=417&gt;&lt;/P&gt;
&lt;P&gt;When the Property Expressions form displays, select the ServerName property from the Property dropdown:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:438px;HEIGHT:341px;" height=341 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_10.png" width=438&gt;&lt;/P&gt;
&lt;P&gt;Click on the ellipsis on the Expression textbox to display the Expression Builder form:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:575px;HEIGHT:533px;" height=533 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_11.png" width=575&gt;&lt;/P&gt;
&lt;P&gt;Expand the Variables list and drag the SQLServerInstanceName variable into the Expression textbox as shown above. I recommend always checking the value of an expression. To do so, click the Evaluate Expression button. Click the Ok button to close the Expression Builder, then click the Ok button again to close the Property Expressions editor.&lt;/P&gt;
&lt;P&gt;You've just done something else that's pretty cool, so let's reflect: We have a variable named saSQLServers that is populated by the Script Task with a list of all the SQL Server instances it can identify on the network. The Foreach Loop Container shreds this variable, walking through each value - each SQL Server instance name, in this case - one at a time. Each pass, it pushes the value of one of those SQL Server instance names into a variable called SQLServerInstanceName. And each time it changes the value of the SQLServerInstanceName variable, the SQLServerInstance.OLEDB Connection Manager's connection properties are updated to now point to that instance of SQL Server.&lt;/P&gt;
&lt;P&gt;How cool is that?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Show Me!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I love lamp. And I like Script Tasks. I use Script Tasks a lot (lamps too!). One cool use of them is to show me the value of a variable that's being changed by a Foreach Loop Container. Since we have a Foreach Loop Container that's changing a variable, allow me to demonstrate.&lt;/P&gt;
&lt;P&gt;Drag a Script Task &lt;EM&gt;into&lt;/EM&gt; the Foreach Loop Container and rename it "Show SQL Server Instance Name". Open the editor and add SQLServerInstanceName to the ReadOnlyVariables property:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:608px;HEIGHT:129px;" height=129 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_12.png" width=608&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Add these two lines of code to Sub Main():&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSQLServerInstanceName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQLServerInstanceName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;MsgBox(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQL Server Instance Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sSQLServerInstanceName)&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;All this script does is read the value currently stored in SQLServerInstanceName and display it in a message box:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG style="WIDTH:286px;HEIGHT:152px;" height=152 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_13.png" width=286&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Close the VSA editor and&amp;nbsp;click the Ok button to close the Script Task editor.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Test Run Time!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You can run the package now to see which servers it finds. I did. That's how I generated the last image.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Store It&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Next,&amp;nbsp;drag an Execute SQL Task into the ForEach SQL Server Instance Container and connect the Script Task to it using a Success precedence constraint. Name the Execute SQL Task "Add the SQL Server name" and double-click it to open the editor.&lt;/P&gt;
&lt;P&gt;Select the EnterpriseDBMetadata.OLEDB connection in the Connection property dropdown. Click the SQLStatement property and then the ellipsis in the Value. When the Enter SQL Query form displays, paste this T-SQL into the textbox:&lt;BR&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Not&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Exists(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SQLServerInstanceName&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstances&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SQLServerInstanceName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Insert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Into&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstances&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; (&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstanceName&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Output&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; inserted&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Values&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Else&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstances&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SQLServerInstanceName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;See the question marks? This is a parameterized query. The question marks are placeholders for parameters. The collection of parameters comprises an array, and the array is zero-based. This means the first question mark - that one in the first If statement - maps to parameter 0. The second maps to parameter 1, the third to parameter 2. There's a pattern emerging here...&amp;nbsp;You get the picture.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;To map these parameters in the Execute SQL Task, click on the Parameter Mapping page:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:689px;HEIGHT:95px;" height=95 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_14.png" width=689&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Map parameters by clicking the Add button to add a parameter mapping. Since we have three question marks in our T-SQL, you need three parameters. The first parameter maps to the SQLServerInstanceName variable, so I select that variable from the Variable Name dropdown. I am supplying the variable to the query, so it's an Input (Direction).&amp;nbsp;It's a String data type and Strings map to the VARCHAR Data Type in the OLEDB provider I'm using in the ConnectionType property. I supply the ordinal of the parameter to which I am mapping for Parameter Name. In other words, this is the first question mark, so the Parameter Name is 0. I leave the Parameter Size set to the default (-1).&lt;/P&gt;
&lt;P&gt;Now it just so happens that all three of our question marks map to the same SSIS variable value: SQLServerInstanceName. That isn't always the case. But since it is here, I configure the remaining two parameters identically to the first, the only exception is the Parameter Name --&amp;gt; ordinal values.&lt;/P&gt;
&lt;P&gt;The T-SQL in this Execute SQL Task returns a value. If the&amp;nbsp;&lt;FONT face="Courier New"&gt;dbo&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstances&lt;/FONT&gt;&lt;/FONT&gt; table does not contain&amp;nbsp;a value for the current &lt;FONT face="Courier New"&gt;SQLServerInstanceName&lt;/FONT&gt;, the current &lt;FONT face="Courier New"&gt;SQLServerInstanceName&lt;/FONT&gt;&amp;nbsp;is added.&amp;nbsp;Did you catch the Output clause in the Insert statement?&amp;nbsp;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;Output&lt;/FONT&gt;&lt;FONT size=2&gt; inserted&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Id&lt;/FONT&gt;&lt;/FONT&gt; returns the value of the newly inserted Id, which is an Identity(1,1) column in the&amp;nbsp;&lt;FONT face="Courier New"&gt;dbo&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstances&lt;/FONT&gt;&lt;/FONT&gt; table. The Output clause rocks. It's new in T-SQL 2005 and allows us to write a single statement to perform the insert &lt;EM&gt;and&lt;/EM&gt; return the inserted row's identity value. Note that if the&amp;nbsp;&lt;FONT face="Courier New"&gt;SQLServerInstanceName&lt;/FONT&gt;&amp;nbsp;exists in the&amp;nbsp;&lt;FONT face="Courier New"&gt;dbo&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstances&lt;/FONT&gt;&lt;/FONT&gt; table, the Id for that row is returned. &lt;/P&gt;
&lt;P&gt;Either way, you get an Id value back from this statement. What do you do with it? Return to the General page of the Execute SQL Task editor and change the ResultSet Property value&amp;nbsp;from "None" to "Single row". This tells the Execute SQL Task to expect a row back from the T-SQL statement.&lt;/P&gt;
&lt;P&gt;We want to capture this Id value for later (patience! You'll see...). Now that we've told the Execute SQL Task to expect a single row from the statement's execution, click on the Result Set page to configure it.&lt;/P&gt;
&lt;P&gt;Similar to the parameters collection, single-row resultsets are a zero-based array and use ordinals to map various columns in the row to SSIS variables. Click the Add button to add a new ResultSet. Change the Result Name to 0 and select the SQLServerId variable:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:496px;HEIGHT:53px;" height=53 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_15.png" width=496&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;Let's review: We configured the Execute SQL Task to find or insert a &lt;FONT face="Courier New"&gt;SQLServerInstanceName&lt;/FONT&gt;&amp;nbsp;into the&amp;nbsp;&lt;FONT face="Courier New"&gt;dbo&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstances&lt;/FONT&gt;&lt;/FONT&gt; table and return the Id of the row to us. We used a parameterized query for this. Why? Because it's inside a Foreach Loop Container and the&amp;nbsp;&lt;FONT face="Courier New"&gt;SQLServerInstanceName&lt;/FONT&gt; value is going to change with each iteration (pass) through the loop. We want to add them all to the &lt;FONT face="Courier New"&gt;dbo&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstances&lt;/FONT&gt;&lt;/FONT&gt; table, one at a time. Make sense? Good. We also want to store the Id value for some reason Andy won't tell us yet. Bad Andy.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The General page of the configured&amp;nbsp;Execute SQL Task looks like this:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:685px;HEIGHT:299px;" height=299 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_16.png" width=685&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A Pattern Emerges...&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;What we've built so far is actually the template for everything else in this package. The package is a lot more complex than this, but it will help you immensely if you realize that this piece of functionality&amp;nbsp;is merely repeated with minor tweaking to build the remainder of the package.&lt;/P&gt;
&lt;P&gt;Now. You can copy and paste a lot here if you want to. And I don't mind if you do so long as you promise to&amp;nbsp;build really good tests. You should build really good tests anyway but testing SSIS's a topic for another post. My point is simple: You can introduce a host of errors - some of them very interesting (which is another way of saying "hard to find") - cutting and pasting. So be careful.&lt;/P&gt;
&lt;P&gt;The pattern looks like this:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:275px;HEIGHT:225px;" height=225 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_17.png" width=275&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's it really. Looks simple when you look at it this way. That's because it is simple. It just takes work to implement this in SSIS. Or in any other language or platform. Surprise! We call this "software development". &lt;img src="http://vsteamsystemcentral.com/cs21/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;FONT color=#000000&gt;&lt;/P&gt;
&lt;H4&gt;B. The Databases&lt;/H4&gt;
&lt;P&gt;Next drag another Execute SQL Task into the ForEach SQL Server Instance Loop Container. Connect the "Add the SQL Server name" Execute SQL Task to the new one using a Success precedence constraint and rename the new Execute SQL Task "Get DatabaseNames":&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:710px;HEIGHT:298px;" height=298 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_18.png" width=710&gt;&lt;/P&gt;
&lt;P&gt;Double-click the new Execute SQL Task to open the editor. Set the Connection property to the SQLServerInstance.OLEDB Connection Manager. Set the SQLStatement property to the following T-SQL statement:&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Database_Id &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; master&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;sys.databases&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;not&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;in&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;'master'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;'msdb'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;'model'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;'tempdb'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;This statement queries the master.sys.databases t&lt;FONT size=2&gt;able&amp;nbsp;for a list of databases and their&amp;nbsp;Database_Id values, explicitly excluding system databases by name. Now there are other ways to explicitly exclude system databases and you are welcome to add them to the comments for this post. I love learning new stuff - teach me something! (In Farmville, we'd say "Learn me something". We talk funny. I know.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;We do not use any parameters in this statement. It is dynamically aimed at the current instance of SQL Server by the dynamic expression we defined for the ServerName property or the SQLServerInstance.OLEDB Connection Manager. So this query will return a list of database on each SQL Server Instance identified by the "Enumerate SQL Server Instances" Script Task, as saSQLServers is shredded by the "ForEach SQL Server Instance" Loop Container, pushing new values into the SQLServerInstanceName variable, re-aiming the SQLServerInstance.OLEDB Connection Manager. Got it? Good.&lt;/P&gt;
&lt;P&gt;What to do with this list of databases... I know - let's push them into a variable. &lt;/P&gt;
&lt;P&gt;Unlike last time, we're returning a couple columns and several rows. The Single Row ResultSet simply will not do - we need a "Full result set" so set the ResultSet property of the Execute SQL Task to this value. On the Reuslt Set page, click the Add button and name the new Result 0. Select DatabaseNames from the Variable Name column:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:454px;HEIGHT:74px;" height=74 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_19.png" width=454&gt;&lt;/P&gt;
&lt;P&gt;So now, the list of database names and IDs are going to be pushed into the DatabaseNames object variable.&lt;/P&gt;
&lt;P&gt;Object variables are cool. You can use them for anything. They are like Variants in old VB. They hold&amp;nbsp;scalars or collections, or collections of collections. In this case we're pushing a full ADO.Net Dataset into the DatabaseNames object variable. &lt;/P&gt;
&lt;P&gt;How cool is that?&lt;/P&gt;
&lt;P&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A-Shreddin' We Will Go&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Next drag a Foreach Loop Container &lt;EM&gt;into&lt;/EM&gt; the "ForEach SQL Server Instance" Loop Container. Connect the Get DatabaseNames Execute SQL Task to the new Foreach Loop Container using a Success precedence constraint and rename the new Foreach Loop Container "Foreach Database".&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Double-click the Foreach Database Loop Container and navigate to the Collection page. Select the Foreach ADO Enumerator and the DatabaseNames variable&amp;nbsp;in the "ADO object source variable" dropdown. ADO.Net datasets can hold multpile tables but ours only has one table, so accept the default Enumeration mode of "Rows in the first table":&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:564px;HEIGHT:341px;" height=341 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_20.png" width=564&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Click the Variable Mappings page and add a couple variable mappings. &lt;/P&gt;
&lt;P&gt;Remember: the DatabaseNames object variable contains an ADO.Net&amp;nbsp;dataset that has one DataTable. That table is populated with the results of the T-SQL query in the "Get DatabaseNames" Execute SQL Task. The T-SQL shaped the DataTable contained inside the DatabaseNames variable. That query had two columns in the Select clause. We map the data in the DatabaseNames variable to scalar SSIS variables using the ordinal of the columns in that T-SQL Select clause. Since it read &lt;FONT face="Courier New"&gt;select&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Database_Id&lt;/FONT&gt;&lt;/FONT&gt;, we map &lt;FONT face="Courier New" color=#0000ff&gt;name&lt;/FONT&gt; to the DatabaseName SSIS variable using ordinal 0&amp;nbsp;and&amp;nbsp;&lt;FONT face="Courier New"&gt;Database_Id&lt;/FONT&gt; to the DatabaseObjectId SSIS variable using ordinal 1. Make sense? Good.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:392px;HEIGHT:103px;" height=103 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_21.png" width=392&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Click the Ok button to close the Foreach Loop Container editor.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Let's look at what we have here. Once we've established a connection to a particular instance of SQL Server, we query the master database for a list of database names and Ids. We then shred that list in a nested Foreach Loop Container.&lt;/P&gt;
&lt;P&gt;Before we move on, we need to add some more dynamic functionality to our SQLServerInstance.OLEDB Connection Manager. So right click the SQLServerInstance.OLEDB Connection Manager and select Properties. Click the Expressions property and then click the ellipsis in the Value textbox. When the Property Expressions Editor displays select InitialCatalog in the Property dropdown. Click the ellipsis in the Expression textbox:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:446px;HEIGHT:350px;" height=350 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_32.png" width=446&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the Expression Builder, add the DatabaseName&amp;nbsp;variable to the Expression:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:583px;HEIGHT:518px;" height=518 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_33.png" width=583&gt;&lt;/P&gt;
&lt;P&gt;This makes the SQLServerInstance.OLEDB Connection Manager even more dynamic. It now is aimed at individual databases as the Foreach Database Loope Container iterates.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Show Me The Databases!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag a Script Task into the Foreach Database Loop Container. Rename it "Show Database Name" and double-click to open the editor. On the Script page add the SQLServerInstanceName, DatabaseName, DatabaseObjectId variables to the ReadOnlyVariables property:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:696px;HEIGHT:119px;" height=119 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_22.png" width=696&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Click the Design Script button and add the following code to Sub Main():&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSQLServerInstanceName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQLServerInstanceName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sDatabaseName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"DatabaseName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iDatabaseObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"DatabaseObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sMsg &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQL Server Instance Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sSQLServerInstanceName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Database Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sDatabaseName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Database Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iDatabaseObjectId.ToString&lt;BR&gt;&lt;BR&gt;MsgBox(sMsg)&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;Close the VSA editor and click the Ok button to close the Script Task editor.&lt;/P&gt;
&lt;P&gt;This script builds a string containing the values of the SQLServerInstanceName, DatabaseName, and DatabaseObjectId variables; then displays them in a message box:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:286px;HEIGHT:182px;" height=182 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_23.png" width=286&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Store The Database Metadata&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag an Execute SQL Task&amp;nbsp;into the Foreach Database Loop Container. Connect the Show Database Name Script Task to it using a Success precedence constraint and rename the Execute SQL Task "Add the Database Name". Double-click it to open the editor. Set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ResultSet: Single row&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Connection: EnterpriseDBMetadata.OLEDB&lt;/LI&gt;
&lt;LI&gt;SQLStatement: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Not&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Exists(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DatabaseName&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Databases&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DatabaseName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SQLServerInstancesTableId &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Insert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Into&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Databases&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; (&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;DatabaseObjectId&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SQLServerInstancesTableId&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;DatabaseName&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; output&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; inserted&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Values&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;BR&gt;Else&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Databases&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DatabaseName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; and&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SQLServerInstancesTableId &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;There are a few more parameters this time. Map them as shown in the following list and image:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;DatabaseName, Input, VARCHAR, 0&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;SQLServerId, Input, LONG, 1&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;DatabaseObjectId, Input, LONG, 2&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;SQLServerId, Input, LONG, 3&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;DatabaseName, Input, VARCHAR, 4&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;DatabaseName, Input, VARCHAR, 5&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;SQLServerId, Input, LONG, 6&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG style="WIDTH:652px;HEIGHT:203px;" height=203 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_24.png" width=652&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Click the Result Set page and add a new resultset. Set the Result Name to 0 and assign the result to the variable DatabaseId:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:375px;HEIGHT:68px;" height=68 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_25.png" width=375&gt;&lt;/P&gt;
&lt;P&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/P&gt;
&lt;P&gt;Is it starting to come together now? Can you see where we're headed? Do you smell what Andy's cooking? &lt;img src="http://vsteamsystemcentral.com/cs21/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/P&gt;
&lt;H4&gt;C. The Schemas&amp;nbsp;&lt;/H4&gt;
&lt;P&gt;Add another Execute SQL Task to the Foreach Database Loop Container and rename it "Get SchemaNames". Add a Success precedence constraint from the "Add the Database Name" Execute SQL Task to the Get SchemaNames Execute SQL Task, and double-click Get SchemaNames to open the editor. Set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ResultSet: Full result set&lt;/LI&gt;
&lt;LI&gt;Connection: SQLServerInstance.OLEDB&lt;/LI&gt;
&lt;LI&gt;SQLStatement: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;Schema_Id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;sys.schemas&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;schema_id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; 16384&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;and&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;not&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;in&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;'guest'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;'INFORMATION_SCHEMA'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;'sys'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This statement&amp;nbsp;returns dbo and user schemas and their respective Ids.&lt;/P&gt;
&lt;P&gt;Configure the Result Set page with the following resultset properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Result Name: 0&lt;/LI&gt;
&lt;LI&gt;Variable Name: SchemaNames&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Shred The Schemas&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag a new&amp;nbsp;Foreach Loop Container into the Foreach Database Loop Container and rename it "Foreach Schema". Connect the "Get SchemaNames" Execute SQL Task to it using a Success precedence constraint. Double-click Foreach Schema to open the editor and set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Collection page, Enumerator: Foreach ADO Enumerator&lt;/LI&gt;
&lt;LI&gt;Collection page, Ado object source variable: SchemaNames&lt;/LI&gt;
&lt;LI&gt;Collection page, Enumeration mode: Rows in first table&lt;/LI&gt;
&lt;LI&gt;Variable Mappings&amp;nbsp;page&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Variable: SchemaName; Index: 0&lt;/LI&gt;
&lt;LI&gt;Variable: SchemaObjectId; Index: 1&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;Click the Ok button to close the Foreach Loop Container editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Show Me The Schemas!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag a Script Task into the Foreach Schema Loop Container and rename it "Show Schema Name". Double-click to open the editor and add the following SSIS variables to the ReadOnlyVariables property: SQLServerInstanceName, DatabaseName, DatabaseObjectId, SchemaName, SchemaObjectId. Click the Design Script button to open the VSA editor and add the following code to Sub Main():&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSQLServerInstanceName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;=Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQLServerInstanceName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sDatabaseName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"DatabaseName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iDatabaseObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"DatabaseObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSchemaName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SchemaName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iSchemaObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SchemaObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sMsg &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQL Server Instance Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sSQLServerInstanceName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Database Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sDatabaseName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Database Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iDatabaseObjectId.ToString &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Schema Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sSchemaName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Schema Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iSchemaObjectId.ToString&lt;BR&gt;&lt;BR&gt;MsgBox(sMsg)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;Close the&amp;nbsp;VSA editor and click the Ok button to close the Script Task editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Store Schema Metadata&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag an Execute SQL Task into the Foreach Schema Loop Container and connect the "Show Schema Name" Script Task to it using a Success precedence constraint. Rename the Execute SQL Task "Add the&amp;nbsp;Schema Name" and double-click it to open the editor. Set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ResultSet: Single row&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Connection: EnterpriseDBMetadata.OLEDB&lt;/LI&gt;
&lt;LI&gt;SQLStatement: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Not&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Exists(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SchemaName&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Schemas&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SchemaName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DatabasesTableId &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Insert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Into&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Schemas&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; (&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SchemaObjectId&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;DatabasesTableId&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SchemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; output&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; inserted&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Values&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;BR&gt;Else&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Schemas&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SchemaName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; and&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DatabasesTableId &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Map the&amp;nbsp;parameters as shown in the following list and image:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;SchemaName, Input, VARCHAR, 0&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;DatabaseId, Input, LONG, 1&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;SchemaObjectId, Input, LONG, 2&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;DatabaseId, Input, LONG, 3&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;SchemaName, Input, VARCHAR, 4&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;SchemaName, Input, VARCHAR, 5&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;DatabaseId, Input, LONG, 6&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG style="WIDTH:655px;HEIGHT:183px;" height=183 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_26.png" width=655&gt;&lt;/P&gt;
&lt;P&gt;Click the Result Set page and add a new resultset. Set the Result Name to 0 and assign the result to the variable SchemaId:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:359px;HEIGHT:48px;" height=48 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_27.png" width=359&gt;&lt;/P&gt;
&lt;P&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/P&gt;
&lt;H4&gt;D. The Tables and Views&lt;/H4&gt;
&lt;P&gt;Add another Execute SQL Task to the Foreach&amp;nbsp;Schema Loop Container and rename it "Get Table and View Names". Add a&amp;nbsp;&lt;BR&gt;Success precedence constraint from the "Add the&amp;nbsp;Schema Name" Execute SQL Task to the "Get Table and View Names" Execute SQL Task, and double-click Get SchemaNames to open the editor. Set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ResultSet: Full result set&lt;/LI&gt;
&lt;LI&gt;Connection: SQLServerInstance.OLEDB&lt;/LI&gt;
&lt;LI&gt;SQLStatement: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;Object_Id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; type_desc&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;sys.tables&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;schema_id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;union&lt;BR&gt;select&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;Object_Id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; type_desc&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;sys.views&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;schema_id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; ?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This statement&amp;nbsp;returns tables and views, their respective Ids, and type descriptions (table or view).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Map the following parameters:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SchemaObjectId, Input, LONG, 0, -1&lt;/LI&gt;
&lt;LI&gt;SchemaObjectId, Input, LONG, 1, -1&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Configure the Result Set page with the following resultset properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Result Name: 0&lt;/LI&gt;
&lt;LI&gt;Variable Name: TablesAndViewsNames&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Shred The Tables and Views&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag a new&amp;nbsp;Foreach Loop Container into the Foreach&amp;nbsp;Schema Loop Container and rename it "Foreach Table and View". Connect the "Get Table and View Names" Execute SQL Task to it using a Success precedence constraint. Double-click Foreach&amp;nbsp;Table and View&amp;nbsp;to open the editor and set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Collection page, Enumerator: Foreach ADO Enumerator&lt;/LI&gt;
&lt;LI&gt;Collection page, Ado object source variable: TableAndViewsNames&lt;/LI&gt;
&lt;LI&gt;Collection page, Enumeration mode: Rows in first table&lt;/LI&gt;
&lt;LI&gt;Variable Mappings&amp;nbsp;page&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Variable: TableAndViewsName; Index: 0&lt;/LI&gt;
&lt;LI&gt;Variable: TableAndViewsObjectId; Index: 1&lt;/LI&gt;
&lt;LI&gt;Variable: TableAndViewsType; Index: 2&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;Click the Ok button to close the Foreach Loop Container editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Show Me The Table And Views!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag a Script Task into the Foreach&amp;nbsp;Table and View&amp;nbsp;Loop Container and rename it "Show Table and View Name". Double-click to open the editor and add the following SSIS variables to the ReadOnlyVariables property: SQLServerInstanceName, DatabaseName, DatabaseObjectId, SchemaName, SchemaObjectId, TablesAndViewsName, TablesAndViewsObjectId, TablesAndViewsType. Click the Design Script button to open the VSA editor and add the following code to Sub Main():&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSQLServerInstanceName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQLServerInstanceName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sDatabaseName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"DatabaseName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iDatabaseObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"DatabaseObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSchemaName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SchemaName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iSchemaObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SchemaObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sTableAndViewName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"TablesAndViewsName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iTableAndViewObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"TablesAndViewsObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sTableAndViewType &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"TablesAndViewsType"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sMsg &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQL Server Instance Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sSQLServerInstanceName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Database Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sDatabaseName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Database Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iDatabaseObjectId.ToString &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Schema Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sSchemaName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Schema Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iSchemaObjectId.ToString &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Table / View Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sTableAndViewName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Table / View Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iTableAndViewObjectId.ToString &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Table / View Type: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sTableAndViewType&lt;BR&gt;MsgBox(sMsg)&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;Close the&amp;nbsp;VSA editor and click the Ok button to close the Script Task editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Store&amp;nbsp;Tables And Views&amp;nbsp;Metadata&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag an Execute SQL Task into the Foreach&amp;nbsp;Tables and Views Loop Container and connect the "Show&amp;nbsp;Table and View&amp;nbsp;Name" Script Task to it using a Success precedence constraint. Rename the Execute SQL Task "Add the&amp;nbsp;Table and View Name" and double-click it to open the editor. Set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ResultSet: Single row&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Connection: EnterpriseDBMetadata.OLEDB&lt;/LI&gt;
&lt;LI&gt;SQLStatement: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Not&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Exists(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ObjectName&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;TablesAndViews&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ObjectName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&lt;/FONT&gt;&lt;FONT size=2&gt; ObjectType &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SchemasTableId &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Insert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Into&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;TablesAndViews&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; (&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;TablesAndViewsObjectId&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SchemasTableId&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ObjectName&lt;BR&gt;&amp;nbsp; &lt;FONT color=#808080&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;ObjectType&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; output&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; inserted&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Values&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;FONT color=#808080&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;BR&gt;Else&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;TablesAndViews&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ObjectName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&lt;/FONT&gt;&lt;FONT size=2&gt; ObjectType &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; &amp;nbsp; and&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SchemasTableId &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Map the&amp;nbsp;parameters as shown in the following list and image:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsName, Input, VARCHAR, 0&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsType, Input, VARCHAR, 1&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;SchemaId, Input, LONG, 2&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsObjectId, Input, LONG, 3&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;SchemaId, Input, LONG, 4&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsName, Input, VARCHAR, 5&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsType, Input, VARCHAR, 6&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsName, Input, VARCHAR, 7&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsType, Input, VARCHAR, 8&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;DatabaseId, Input, LONG, 9&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;IMG style="WIDTH:670px;HEIGHT:251px;" height=251 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_28.png" width=670&gt;&lt;/P&gt;
&lt;P&gt;Click the Result Set page and add a new resultset. Set the Result Name to 0 and assign the result to the variable TablesAndViewsId:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:380px;HEIGHT:67px;" height=67 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_29.png" width=380&gt;&lt;/P&gt;
&lt;P&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/P&gt;
&lt;H4&gt;E. The Tables and Views&lt;/H4&gt;
&lt;P&gt;Add another Execute SQL Task to the Foreach&amp;nbsp;Table and View&amp;nbsp;Loop Container and rename it "Get Column Names and Metadata". Add a Success precedence constraint from the "Add the&amp;nbsp;Table and View&amp;nbsp;Name" Execute SQL Task to the "Get Column Names and Metadata" Execute SQL Task, and double-click "Get&amp;nbsp;Column Names and Metadata" to open the editor. Set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ResultSet: Full result set&lt;/LI&gt;
&lt;LI&gt;Connection: SQLServerInstance.OLEDB&lt;/LI&gt;
&lt;LI&gt;SQLStatement: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;distinct&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;c&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;name&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;c&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;column_id&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;t&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;name&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;sys.columns&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; c&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;inner&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;join&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;sys.types&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; t &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;on&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; t&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;user_type_id &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; c&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;user_type_id&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; c&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;object_id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; ?&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This statement&amp;nbsp;returns columns, their respective Ids, and type names.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Map the following parameters:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;TablesAndViewsObjectId, Input, LONG, 0, -1&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Configure the Result Set page with the following resultset properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Result Name: 0&lt;/LI&gt;
&lt;LI&gt;Variable Name: ColumnNames&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Shred The Columns&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag a new&amp;nbsp;Foreach Loop Container into the Foreach&amp;nbsp;Table and View&amp;nbsp;Loop Container and rename it "Foreach Column". Connect the "Get Column Names and Metadata" Execute SQL Task to it using a Success precedence constraint. Double-click Foreach&amp;nbsp;Column to open the editor and set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Collection page, Enumerator: Foreach ADO Enumerator&lt;/LI&gt;
&lt;LI&gt;Collection page, Ado object source variable: ColumnNames&lt;/LI&gt;
&lt;LI&gt;Collection page, Enumeration mode: Rows in first table&lt;/LI&gt;
&lt;LI&gt;Variable Mappings&amp;nbsp;page&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Variable: ColumnName; Index: 0&lt;/LI&gt;
&lt;LI&gt;Variable: ColumnObjectId; Index: 1&lt;/LI&gt;
&lt;LI&gt;Variable: ColumnDataType; Index: 2&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;Click the Ok button to close the Foreach Loop Container editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Show Me The Columns!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag a Script Task into the Foreach&amp;nbsp;Column Loop Container and rename it "Show&amp;nbsp;Column Name". Double-click to open the editor and add the following SSIS variables to the ReadOnlyVariables property: SQLServerInstanceName, DatabaseName, DatabaseObjectId, SchemaName, SchemaObjectId, TablesAndViewsName, TablesAndViewsObjectId, TablesAndViewsType, ColumnName, ColumnObjectId, ColumnDataType. Click the Design Script button to open the VSA editor and add the following code to Sub Main():&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSQLServerInstanceName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQLServerInstanceName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sDatabaseName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"DatabaseName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iDatabaseObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"DatabaseObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sSchemaName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SchemaName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iSchemaObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SchemaObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sTableAndViewName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"TablesAndViewsName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iTableAndViewObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variable&lt;BR&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"TablesAndViewsObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sTableAndViewType &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"TablesAndViewsType"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sColumnName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"ColumnName"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iColumnObjectId &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Convert.ToInt32(Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"ColumnObjectId"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sColumnDataType &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Dts.Variables(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"ColumnDataType"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).Value.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sMsg &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SQL Server Instance Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sSQLServerInstanceName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Database Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sDatabaseName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Database Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iDatabaseObjectId.ToString &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Schema Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sSchemaName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Schema Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iSchemaObjectId.ToString &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Table / View Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sTableAndViewName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Table / View Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iTableAndViewObjectId.ToString &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Table / View Type: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sTableAndViewType &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Column Name: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sColumnName &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Column Id: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; iColumnObjectId.ToString &amp;amp; vbCrLf &amp;amp; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Column DataType: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; sColumnDataType&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;MsgBox(sMsg)&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;Close the&amp;nbsp;VSA editor and click the Ok button to close the Script Task editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Store&amp;nbsp;Columns And&amp;nbsp;Metadata&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Drag an Execute SQL Task into the Foreach&amp;nbsp;Column Loop Container and connect the "Show&amp;nbsp;Column&amp;nbsp;Name" Script Task to it using a Success precedence constraint. Rename the Execute SQL Task "Add the&amp;nbsp;Column Name" and double-click it to open the editor. Set the following properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ResultSet: Single row&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Connection: EnterpriseDBMetadata.OLEDB&lt;/LI&gt;
&lt;LI&gt;SQLStatement: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Not&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;Exists(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ColumnName&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Columns&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ColumnName &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; TablesAndViewsTableId &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;begin&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Insert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Into&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Columns&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; (&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ColumnsObjectId&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;TablesAndViewsTableId&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;nbsp; ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ColumnName&lt;BR&gt;&amp;nbsp; &lt;FONT color=#808080&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;ColumnDataType&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; Values&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;FONT color=#808080&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt; ?&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;end&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Map the&amp;nbsp;parameters as shown in the following list and image:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;ColumnName, Input, VARCHAR, 0&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsId, Input, LONG, 1&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;ColumnObjectId, Input, LONG, 2&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;TablesAndViewsId, Input, LONG, 3&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;ColumnName, Input, VARCHAR, 4&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;ColumnDataType, Input, VARCHAR, 5&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;IMG style="WIDTH:635px;HEIGHT:158px;" height=158 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_30.png" width=635&gt;&lt;/P&gt;
&lt;P&gt;Click the Ok button to close the Execute SQL Task editor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You're done!&lt;/P&gt;
&lt;P&gt;When you're done your SSIS package should look something like this:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:608px;HEIGHT:1614px;" height=1614 src="http://vsteamsystemcentral.com/images/ext/EntDBMetadata_31.png" width=608&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can get the SSIS package &lt;A class="" href="http://vsteamsystemcentral.com/dnn/Articles/EnterpriseDBMetadata/tabid/116/Default.aspx" target=_blank&gt;here&lt;/A&gt;&amp;nbsp;(free registration required).&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=284" width="1" height="1"&gt;</content><author><name>andy</name><uri>http://vsteamsystemcentral.com/cs21/members/andy.aspx</uri></author><category term="SSIS" scheme="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/tags/SSIS/default.aspx" /><category term="SQL Server" scheme="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/tags/SQL+Server/default.aspx" /><category term="Design Patterns" scheme="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>New SSIS 101 Article!</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/08/21/new-ssis-101-article.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/08/21/new-ssis-101-article.aspx</id><published>2008-08-21T21:23:00Z</published><updated>2008-08-21T21:23:00Z</updated><content type="html">&lt;P&gt;My latest SSIS 101 article - &lt;A class="" href="http://www.sqlservercentral.com/articles/SSIS/64014/" target=_blank&gt;SSIS 101: Object Variables, ResultSets, and Foreach Loop Containers&lt;/A&gt; - is live at &lt;A class="" href="http://www.sqlservercentral.com/" target=_blank&gt;SQL Server Central&lt;/A&gt; today!&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=277" width="1" height="1"&gt;</content><author><name>andy</name><uri>http://vsteamsystemcentral.com/cs21/members/andy.aspx</uri></author><category term="SSIS" scheme="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/tags/SSIS/default.aspx" /></entry><entry><title>Installing Visual Studio 2008 SP1 Beta</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/07/15/installing-visual-studio-2008-sp1-beta.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/07/15/installing-visual-studio-2008-sp1-beta.aspx</id><published>2008-07-15T13:41:00Z</published><updated>2008-07-15T13:41:00Z</updated><content type="html">&lt;P&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cf99c752-1391-4bc3-babc-86bc0b9e8e5a&amp;amp;DisplayLang=en" target=_blank&gt;Visual Studio 2008 Service Pack 1 Beta&lt;/A&gt; is available. Installation&amp;nbsp;is not straightforward - there is at least one "gotcha." &lt;/P&gt;
&lt;P&gt;Full SP documentation can be found &lt;A class="" href="http://vs2008sp1docs.msdn.microsoft.com/en-us/default.aspx" target=_blank&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Procedure&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Download &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cf99c752-1391-4bc3-babc-86bc0b9e8e5a&amp;amp;DisplayLang=en" target=_blank&gt;Visual Studio 2008 Service Pack 1 Beta&lt;/A&gt;. I am installing this on the same virtual machine I installed SQL Server 2008 RC0 - details in this &lt;A class="" href="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/07/14/installing-sql-server-rc0.aspx" target=_blank&gt;post&lt;/A&gt;. I also plan to install the Visual Studio 2008 GDR June CTP on this virtual machine (which will be covered in &lt;A class="" href="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/07/15/installing-visual-studio-2008-database-edition-gdr-june-ctp.aspx" target=_blank&gt;this post&lt;/A&gt;) - hence the GDRsetup.exe included in the screenshot. &lt;/P&gt;
&lt;P&gt;I execute the VS90sp1-KB945140-ENU.exe file&amp;nbsp;with Administrator privileges by right-clicking it ans selecting "Run as administrator" :&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP100.png"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;This starts the installation wizard. Components are listed in the "Affected products" listbox on the introductory splash page:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP101.png"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Click Next to proceed to the License page:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP102.png"&gt;&lt;/P&gt;
&lt;P&gt;If you read and accept the License terms, click Next to proceed to the Installation Progress page:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP103.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Oops&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When I install Visual Studio 2008 SP1 Beta - following the instruction - the installation fails. This is the "gotcha" I mentioned in the introduction:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP104.png"&gt;&lt;/P&gt;
&lt;P&gt;If you click the link in the sentence "View the log file," the installation log is displayed. I copied the error message at the end of this file. The error message is "A later version of Microsoft SQL Server Compact is already installed" :&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP105.png"&gt;&lt;/P&gt;
&lt;P&gt;I copy this error to the clipboard and paste it into&amp;nbsp;a search engine. I receive one &lt;A class="" href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3519444&amp;amp;SiteID=1" target=_blank&gt;link&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP106.png"&gt;&lt;/P&gt;
&lt;P&gt;Browsing to that &lt;A class="" href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3519444&amp;amp;SiteID=1" target=_blank&gt;link&lt;/A&gt; and scrolling down, I find an answer (thanks Vicente!):&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP108.png"&gt;&lt;/P&gt;
&lt;P&gt;Following Vicente's instructions (and link), I download&amp;nbsp;SSCERuntime-ENU.msi from the &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=68539FAE-CF03-4C3B-AEDA-769CC205FE5F&amp;amp;displaylang=en" target=_blank&gt;Microsoft SQL Server Compact 3.5 SP1 Beta website&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP110.png"&gt;&lt;/P&gt;
&lt;P&gt;I save this file in my Apps directory:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP111.png"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP112.png"&gt;&lt;/P&gt;
&lt;P&gt;I install SSCERuntime-ENU.msi from my Apps directory:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP113.png"&gt;&lt;/P&gt;
&lt;P&gt;When the Microsoft SQL Server Compact 3.5 SP1 Beta installation wizard starts, click Next:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP114.png"&gt;&lt;/P&gt;
&lt;P&gt;At the Program Maintenance page, select Remove and click Next:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP115.png"&gt;&lt;/P&gt;
&lt;P&gt;Click the Remove button to remove the current version of the SQL Server CE Runtime:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP116.png"&gt;&lt;/P&gt;
&lt;P&gt;When the SQL Server CE Runtime is removed, click Finish:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP117.png"&gt;&lt;/P&gt;
&lt;P&gt;Return to your folder containing the downloaded SSCERuntime-ENU.msi file and copy that file to the clipboard:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP118.png"&gt;&lt;/P&gt;
&lt;P&gt;Navigate to the &lt;STRONG&gt;&lt;EM&gt;temporary directory&lt;/EM&gt;&lt;/STRONG&gt; containing the Visual Studio 2008 SP1 files. For my virtual machine, this path is &lt;EM&gt;C:\Users\Administrator\AppData\Local\Temp\1\Microsoft Visual Studio 2008 SP1 (Beta)&lt;/EM&gt;. Paste SSCERuntime-ENU.msi, overwriting the existing file:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP119.png"&gt;&lt;/P&gt;
&lt;P&gt;Again, overwrite the existing file:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP120.png"&gt;&lt;/P&gt;
&lt;P&gt;Return to your folder containing the Visual Studio 2008 SP1 Beta file (VS90sp1-KB945140-ENU.exe) and execute this file with administrator permissions (again):&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP121.png"&gt;&lt;/P&gt;
&lt;P&gt;Click Next to start the installation (again):&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP122.png"&gt;&lt;/P&gt;
&lt;P&gt;Agree to the license (again):&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP123.png"&gt;&lt;/P&gt;
&lt;P&gt;Observe the Progress (again):&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP124.png"&gt;&lt;/P&gt;
&lt;P&gt;This time, the service pack is applied - without error!&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/InstSP125.png"&gt;&lt;/P&gt;
&lt;P&gt;I may be missing something&amp;nbsp;- this is how the installation went for me. I do not believe the temporary file we overwrite in the corrective steps &lt;EM&gt;exist&lt;/EM&gt; until the first installation attempt fails.&lt;/P&gt;
&lt;P&gt;:{&amp;gt; Andy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=248" width="1" height="1"&gt;</content><author><name>andy</name><uri>http://vsteamsystemcentral.com/cs21/members/andy.aspx</uri></author><category term="Database Edition" scheme="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/tags/Database+Edition/default.aspx" /><category term="Service Pack 1" scheme="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/tags/Service+Pack+1/default.aspx" /><category term="Visual Studio 2008" scheme="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/tags/Visual+Studio+2008/default.aspx" /></entry><entry><title>Installing SQL Server RC0</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/07/14/installing-sql-server-rc0.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/applied_business_intelligence/archive/2008/07/14/installing-sql-server-rc0.aspx</id><published>2008-07-14T18:29:00Z</published><updated>2008-07-14T18:29:00Z</updated><content type="html">&lt;P&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=35F53843-03F7-4ED5-8142-24A4C024CA05&amp;amp;displaylang=en" target=_blank&gt;SQL Server 2008 RC0&lt;/A&gt; has been out for a while. You can download it &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=35F53843-03F7-4ED5-8142-24A4C024CA05&amp;amp;displaylang=en" target=_blank&gt;here&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;This post is not a detailed examination of the setup options. There are much better articles and posts out there if you want more information. This post represents one way to get SQL Server 2008 RC0 up and running so you can start learning the new features!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Getting Started&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I downloaded the software and installed it on a brand new virtual machine running &lt;A class="" href="http://www.microsoft.com/windowsserver2008/en/us/default.aspx" target=_blank&gt;Windows Server 2008 Enterprise&lt;/A&gt; (without Hyper-V). I used &lt;A class="" href="http://vmware.com/products/ws/" target=_blank&gt;VMWare Workstation&lt;/A&gt; for this virtual machine because I need a 64-bit guest OS. I was also able to configure the machine to use both CPUs on my host system. This may be possible with &lt;A class="" href="http://www.microsoft.com/windowsserversystem/virtualserver/default.aspx" target=_blank&gt;Virtual Server&lt;/A&gt; or &lt;A class="" href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx" target=_blank&gt;Virtual PC&lt;/A&gt;, but I don't know how to do it (if it is).&lt;/P&gt;
&lt;P&gt;I loaded the ISO image for SQL Server 2008 RC0 64-bit into the virtual DVD drive and started the setup application. The following screen displays:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/RC0Inst00.png"&gt;&lt;/P&gt;
&lt;P&gt;Now this looks a lot different from previous SQL Server installation applications. In general, you navigate between pages using the Page&amp;nbsp;List on the left. To continue installing click the Installation link in the Page List:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/RC0Inst01.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Installing a Stand-Alone Default Instance&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To install a new instance of SQL Server 2008, click the "New SQL Server stand-alone installation or add features to an existing installation" link. The Setup Support Rules wizard executes and checks your system configuration:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/images/ext/RC0Inst02.png"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P