<?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">Steve Fibich</title><subtitle type="html" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/atom.aspx</id><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/default.aspx" /><link rel="self" type="application/atom+xml" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61129.2">Community Server</generator><updated>2007-11-08T10:11:00Z</updated><entry><title>SSIS Execute SQL Task and RaisError (Using a OLEDB Connection)</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/11/03/ssis-execute-sql-task-and-raiserror.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/11/03/ssis-execute-sql-task-and-raiserror.aspx</id><published>2008-11-03T16:52:00Z</published><updated>2008-11-03T16:52:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;This is a relatively short post&amp;nbsp;about raising an error in T-SQL and having SSIS not recognize that error.&amp;nbsp;&amp;nbsp;If you have an SSIS package that calls a SQL Task and that T-SQL for whatever reason ends up raising an error the SSIS package that called the T-SQL may complete with the step without error.&amp;nbsp;&amp;nbsp;&amp;nbsp; There may be two separate reasons why this is not working as expected.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;The first reason why it may not be working has to do with an apparent bug is SQL Server 2005 SP2.&amp;nbsp;(It looks like it was a bug in 2008 as well) There are a number of good posts on this, but I believe you can fix this by installing SP 2 Updates.&amp;nbsp; &lt;/SPAN&gt;The first step is to make sure you know what version of&amp;nbsp;SQL Server you are on. (&lt;A href="http://support.microsoft.com/default.aspx/kb/321185"&gt;http://support.microsoft.com/default.aspx/kb/321185&lt;/A&gt;)&amp;nbsp; The second step is to upgrade to&amp;nbsp;a SQL Server build that has this error corrected. (&lt;A href="http://support.microsoft.com/kb/937137/"&gt;http://support.microsoft.com/kb/937137/&lt;/A&gt;)&amp;nbsp; &amp;nbsp;I have chosen to installed&amp;nbsp;the most recent Cumlative Update&amp;nbsp;that was released on August 18th 2008,&amp;nbsp;it will bring you to version 09.00.3282.00.&lt;/P&gt;
&lt;P&gt;About the SP2 Error:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.windows-tech.info/15/2c8831412be41b1f.php"&gt;http://www.windows-tech.info/15/2c8831412be41b1f.php&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=276828"&gt;http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=276828&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The second reason has to do wiht the RaisError() call itself.&amp;nbsp; The Error Level set in the RaisError statement needs to be set to a level of 11 or&amp;nbsp;higher.&amp;nbsp; That's it, it's that simple. Below is a simple example of testing this process.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Procedure:&lt;/U&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Create&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;proc&lt;/FONT&gt;&lt;FONT size=2&gt; [dbo]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;[failure_proc]&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;as&lt;/P&gt;
&lt;P&gt;BEGIN&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;RaisError&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Steves Error'&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;18&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;1&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;END&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;U&gt;Unexpected Success (Error Level 11):&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/323/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Expected Failure (Error Level 11):&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/322/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now I just need to integrate these changes&amp;nbsp;into some of my previous packages and upgrade a few servers.&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=317" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="Random SSIS Info" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Random+SSIS+Info/default.aspx" /><category term="Obscure T-SQL" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Obscure+T-SQL/default.aspx" /></entry><entry><title>dtexec.exe what are you doing? (part II)</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/09/02/dtexec-exe-what-are-you-doing-part-ii.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/09/02/dtexec-exe-what-are-you-doing-part-ii.aspx</id><published>2008-09-02T16:15:00Z</published><updated>2008-09-02T16:15:00Z</updated><content type="html">&lt;P&gt;This is the second part in a very short series covering dtexec and how to see exactly what package it is executing.&amp;nbsp; Last time we covered how to see what &lt;A class="" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/08/31/dtexec-exe-what-are-you-doing.aspx"&gt;dtexec was doing using PowerShell and WMI&lt;/A&gt;.&amp;nbsp; This was great for checking all the different packages that might be running on a server at any given time.&amp;nbsp; What we will cover this time is how to create a package that will not allow any work to be done if it is already running.&amp;nbsp; If all of your jobs are called through the SQL Server Agent this is not really concern you need to have, as that job scheduler will not allow the same job to be called twice.&amp;nbsp; If you have the same package &lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;imbedded &lt;/SPAN&gt;in different SQL Server Agent Jobs, or you are using a third party job scheduler (that will call the same job even if it is already running), or if you are using a windows scheduler calling dtexec.exe or a mixed of all 3 this should be a concern.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Package Overview:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/291/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;Alright you will notice the first object in the SSIS package is the WMI Data Reader Task.&amp;nbsp; This is a underutilized task in my &lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;opinion &lt;/SPAN&gt;and really opens up the &lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;possibilities &lt;/SPAN&gt;of data collection for SSIS.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/294/original.aspx" border=0&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I use the WMI Connection&amp;nbsp;Manager to connect to the WMI object I would like to&amp;nbsp;query. (Details below)&amp;nbsp; Its query is 'select * from WIN32_process' where it selects all of the process on the local machine to where the package is being executed.&amp;nbsp; It dumps the result set into a package variable that is of type Object.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The WMI Connection Manager object&amp;nbsp;is the standard connection manager with the default NameSpace (\root\cimv2).&amp;nbsp; I set the Server name value to &lt;A&gt;\\localhost&lt;/A&gt; and selected the use windows authentication check box.&amp;nbsp; All pretty basic options.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/295/original.aspx" border=0&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The forEach loop then &lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;iterates &lt;/SPAN&gt;of the record set object an runs the script task once for each row.&amp;nbsp; Pulling out the Caption and CommandLine columns from the recordset and placing them into two variables WMICaption and WMICommandLine.&amp;nbsp; (If you would like to see the entire record set to see what is &lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;available &lt;/SPAN&gt;configure the WMI task to output its data to a text file and run it once.)&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/296/original.aspx" border=0&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Script task inside the forEach Loop is where all of the real work is done.&amp;nbsp; Most of the work being done consists of string parsing.&amp;nbsp; First I grab the processes that have a Caption of DTEXEC. Caption is the process name.&amp;nbsp; Then when I have a record with a DTEXEC caption value I parse out the package name between the '/F(ile)' and the '.dtsx' values that will be there in a dtexec.exe call.&amp;nbsp; I also remove any directory information that was used in the call.&amp;nbsp; I output this to the screen for this example in a message box for each time there is a dtexec process.&amp;nbsp; If the script detects the same package name in two different records where they match the System Package Variable 'PackageName'&amp;nbsp;with the process name of DTEXEC&amp;nbsp;it then&amp;nbsp;sets a package level variable dtexecFlag to True.&amp;nbsp; This is the indicator to run or not run the rest of the package.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;Public Sub Main()&lt;BR&gt;&amp;nbsp;&amp;nbsp;'&lt;BR&gt;&amp;nbsp;&amp;nbsp;' Add your code here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--------------------------------------------------------------&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'SFIBICH&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '9/2/2008&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'This strips out the package name from a CommandLine column of a&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'WMI Record set returned from Win32_process object where the&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Caption value is DTEXEC&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--------------------------------------------------------------&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim WMICaption As String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim WMICommandLine As String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim WMIPackageName As String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim PackageName As String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim IndexOfSlashF As Integer&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim IndexOfSpace As Integer&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WMICaption = Dts.Variables("WMICaption").Value.ToString&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WMICommandLine = Dts.Variables("WMICommandLine").Value.ToString&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PackageName = Dts.Variables("PackageName").Value.ToString&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If WMICaption.Trim.Length &amp;gt; 5 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (WMICaption.Trim.ToUpper.Substring(0, 6) = "DTEXEC") Then&lt;BR&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; IndexOfslashF = WMICommandLine.ToUpper.IndexOf("/F")&lt;BR&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; IndexOfSpace = WMICommandLine.Substring(IndexOfslashF).ToUpper.IndexOf(" ") + IndexOfslashF&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&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; WMIPackageName = WMICommandLine.Substring(IndexOfSpace + 1, WMICommandLine.ToUpper.IndexOf(".DTSX") - IndexOfSpace - 1)&lt;BR&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; WMIPackageName = WMIPackageName.Substring(WMIPackageName.LastIndexOf("\") + 1)&lt;BR&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; WMIPackageName = WMIPackageName.Trim&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&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; MsgBox("WMICaption:" + WMICaption + vbCrLf + "WMICommandLine:" + WMICommandLine + vbCrLf + _&lt;BR&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; "Package Name:" + PackageName + vbCrLf + "WMIPackage Name:" + WMIPackageName + vbCrLf + _&lt;BR&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; "IndexOfslashF:" + IndexOfSlashF.ToString + vbCrLf + "IndexOfSpace:" + IndexOfSpace.ToString)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&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; Dts.Variables("PackageCount").Value = CInt(Dts.Variables("PackageCount").Value) + 1&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&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; If (WMIPackageName = PackageName And CInt(Dts.Variables("PackageCount").Value) &amp;gt; 1) Then&lt;BR&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; Dts.Variables("dtexecFlag").Value = True&lt;BR&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; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dts.TaskResult = Dts.Results.Success&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Precedence Constraints.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/297/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;These are pretty straight forward one is set for Success and dtexecFlag=FALSE and the other is set to Success and dtexecFlag=TRUE.&lt;/P&gt;
&lt;P&gt;Never Ending For Loop and Script task: This combination is to give me a way to have my example package run forever so I can test the WMI portion of this package.&amp;nbsp; The loop is set to 1==1 and the script task waits 5 seconds.&lt;/P&gt;
&lt;P&gt;There are some things to remember.&lt;/P&gt;
&lt;P&gt;1.) DTEXEC is not executed when running a package using Visual Studio BIDS 2005.&amp;nbsp; So this package will not find copies of itself running if you open two BIDS sessions and execute the package twice.&lt;/P&gt;
&lt;P&gt;2.) Run the packages through command line to avoid the issue above and to allow the message boxes to PopUp.&amp;nbsp; If you run it through SQL Agent you will get an error when it comes to the Message boxes.&lt;/P&gt;
&lt;P&gt;3.) Read the message boxes as they pop up, you will not get the "Shut Down" message box until you run the second package, and you will have to click through two boxes prior to that.&lt;/P&gt;
&lt;P&gt;Here are the screen shots of the package in action.&lt;/P&gt;
&lt;P&gt;Running in BIDS with a copy of the package running in the command line in the background.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/292/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Running through the command line:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/293/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;Well that's it, and you can download the &lt;A class="" href="http://richmondsql.org/cs2007/files/folders/stevefibich/entry80.aspx"&gt;package here!&lt;/A&gt;&amp;nbsp; (I think registration is required, it redirects to a user group site sorry but I am having issues uploading to this site.)&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=298" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="SSIS" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/SSIS/default.aspx" /><category term="WMI" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/WMI/default.aspx" /><category term="SSIS FrameWork" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/SSIS+FrameWork/default.aspx" /></entry><entry><title>dtexec.exe what are you doing?</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/08/31/dtexec-exe-what-are-you-doing.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/08/31/dtexec-exe-what-are-you-doing.aspx</id><published>2008-09-01T00:14:00Z</published><updated>2008-09-01T00:14:00Z</updated><content type="html">&lt;P&gt;dtexec.exe is the program that is executed to run dtsx packages in SSIS 2005.&amp;nbsp; This executable is called if you call a Integration Services package through SQL Server Agent or through the command line directly.&amp;nbsp; The problem I am trying to solve today is to know what package dtexec.exe is running.&amp;nbsp; When you run an SSIS package you can look in task manager and see a dtexec.exe process executing.&amp;nbsp; If you only have one SSIS package executing at a time then you know which package dtexec is running.&amp;nbsp; If you have an enviorment where you have two or more packages on mulitple schedules and some packages that run on demand then you are left wondering which package is a particular dtexec.exe process running?&amp;nbsp; I have written a short (and do I mean short) powershell script to get this information.&amp;nbsp; I hope some of you find this usefull.&amp;nbsp; (This script can also be modified to handle looking into a "job number/name" if you are running your SSIS packages in some sort of parent/child framework. (more on that in a future post).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;So for this example I have 1 SSIS packages, NeverEndingPackage.dtsx and another instance of NeverEndingPackage2.dtsx.&amp;nbsp;(NeverEndingPackage2.dtsx is a copy of the NeverEndingPackage.dtsx)&amp;nbsp;These packages are simply a for loop where 1==1 and the have a script task that waits for 5 seconds inbetween each loop. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/278/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;I have called these packages through the command line, once each and you will see two dtexec.exe process in my task manager, but the question is which one is which if I needed to stop one of these processes?&lt;/P&gt;
&lt;P&gt;&lt;A href="http://vsteamsystemcentral.com/cs21/photos/steve/picture285.aspx" target=_blank&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/289/original.aspx" border=0&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now enters PowerShell (using WMI) to solve the issue.&amp;nbsp; I'll try and walk through the script below.&lt;/P&gt;
&lt;P&gt;################################&lt;BR&gt;#&lt;BR&gt;# SFIBICH&lt;BR&gt;# 8/21/2008&lt;BR&gt;# This script gets the process of a given machine&lt;BR&gt;# that are running dtexec.exe (SSIS executable)&lt;BR&gt;# It then intergates the CommandLine String of the &lt;BR&gt;# Win32_process object to display the SSIS package&lt;BR&gt;# that is running.&lt;BR&gt;#&lt;BR&gt;################################&lt;BR&gt;#one liner&lt;BR&gt;#gwmi Win32_process |?{$_.ProcessName -eq 'dtexec.exe'} | select-object -property processId, @{Name='PackageName'; Expression={$_.CommandLine.substring($_.CommandLine.IndexOf('/F')+2,($_.CommandLine.indexOf('.dtsx')-$_.CommandLine.IndexOf('/F')-2)).trim()+'.dtsx'}}, threadCount, WS,VM&amp;nbsp; | format-table&lt;/P&gt;
&lt;P&gt;#multi liner&lt;BR&gt;gwmi Win32_process |?{$_.ProcessName -eq 'dtexec.exe'} | select-object -property processId,`&lt;BR&gt;@{Name='PackageName'; Expression={$_.CommandLine.substring($_.CommandLine.toUpper().IndexOf('/F')`&lt;BR&gt;+2,($_.CommandLine.toUpper().indexOf('.DTSX')-$_.CommandLine.toUpper().IndexOf('/F')-2)).trim()+'.dtsx'}}, `&lt;BR&gt;threadCount, WS,VM&amp;nbsp; | format-table -auto&lt;/P&gt;
&lt;P&gt;Ok, the # are just comments so nothing there.&lt;/P&gt;
&lt;P&gt;There really is only one line of code here I just broke it into different lines using the ` at the end of each line.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Line 1 - This uses the get-wmi command (shorten to gwmi)&amp;nbsp; to get the Win32_process object for this computer.&amp;nbsp; (Note: you can pass -ComputerName &lt;EM&gt;ComputerName&lt;/EM&gt; to get the same information on a remote machine.)&amp;nbsp;&amp;nbsp; IT then passes the output of this to a where-object (?)&amp;nbsp;PowerShell command searching on ProcessName equal to dtexec.exe.&amp;nbsp; After that it passes the filtered output to a select-object command where it selects the processID and some other things&lt;/P&gt;
&lt;P&gt;Line2 - We create a custom property of PackageName that is a substring of the Win32_process property CommandLine where I have substringed the CommandLine to get the information between the /F and the .dtsx portion of the line.&amp;nbsp; Which for a dtexec.exe process will be the name of the package.&amp;nbsp; (More trimming maybe nescessary if you are runing the dtexec command from a directory that the SSIS packages are not in as it will length the file name that is passed to the command.)&lt;/P&gt;
&lt;P&gt;Line3 - Finishing up the custom property and adding .dtsx to the name of the package since I cut it off&lt;/P&gt;
&lt;P&gt;Line 4 - adding a few other properties like WorkingSet&amp;nbsp; and Virtual Memory both in KB. Finally passing it to a format-table command to get the output in a manner that I like.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Thats it....here is the script in action:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/288/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P&gt;You can see that the first package NeverEndingPackage is processID 312 and the second call to NeverEndingPackage2 is 4484.&amp;nbsp; You can compare the process ID in the powershell script to that in the Task Manager.&amp;nbsp; You can not match a process in task manager to a SSIS package.&amp;nbsp; You can use the WMI Win32 Process object to pull more details about each SSIS package execution.&amp;nbsp; Next time I'll show you how to use this type of information inside an SSIS package so that an automated job scheduler (other than SQL Server Agent) can't call your package while there is an instance of it already running.&lt;/P&gt;
&lt;P&gt;Thats it.&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=282" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="PowerShell" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/PowerShell/default.aspx" /><category term="SSIS" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/SSIS/default.aspx" /><category term="WMI" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/WMI/default.aspx" /></entry><entry><title>space_used_sp vs. sp_spaceUsed</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/07/08/space-used-sp.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/07/08/space-used-sp.aspx</id><published>2008-07-08T12:07:00Z</published><updated>2008-07-08T12:07:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Ok I'm not one to re-write standard system stored procedures for SQL Server.&amp;nbsp; That being said I have been working a good deal with files and file groups within SQL Server over the past few days moving data and indexes to files and file groups other than the default PRIMARY file group.&amp;nbsp; Sp_spaceUsed is great procedure for giving you overall storage utilization information for a database or database objects (table, index view, or queue).&amp;nbsp; As I have been moving indexes and tables over to different file groups I wanted to see how this was splitting my data as far as size and row counts was going and how it was being disturbed across the file system.&amp;nbsp; Unfortunately sp_spaceUsed does not give you this level of detail and I could not find a system view or other system procedure to give me all of the information that I wanted.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;sp_spaceUsed&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://vsteamsystemcentral.com/cs21/photos/steve/picture237.aspx" target=_blank&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/237/original.aspx" border=0&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;So I set out to create my own and now that I have it working and figured I'll share it with everyone.&amp;nbsp; I ended up creating two objects, one a view sp_space_used_view and the second a procedure space_used_sp. I’m a database guy so I love organization so I put both of these objects into a schema named metadata that is owned by DBO.&amp;nbsp; The view displays the space used by all objects in the database with rollup levels being displayed as ' -db-level', ' -schema-level', and ' -table-level'.&amp;nbsp; The view relies upon the sys.objects (due to the fact that system tables are not in sys.tables so I was losing the space and row count information for these objects.), sys.indexes, sys.partions, sys.database_files, sys.schemas, sys.dm_db_partion_stats, sys.internal_tables,&amp;nbsp;and sys.index_columns catalog views; all of which have detail coverage in BOL.&amp;nbsp; The view utilizes these system catalog views to show rows counts, reserved space, data space, index space, and unused space in the database files broken down by table.&amp;nbsp; I figure I would want to see all of the detailed data for a given database sometimes, rollups others, and individual objects separately as well so encapsulation of the select logic into a view allows re-use of this code in other objects.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The procedure utilizes the view to show you information for a particular table or for the overall database.&amp;nbsp; I hope this code is useful to others as well.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;One of the main differences between sp_spaceUsed and my space_used_sp is that sp_spaceUsed allows for the updating of system information which my procedure does not, it only returns data to the screen.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The second difference is that sp_spaceUsed requires the schema name to be passed as part of the table name if you want to view information on an object outside of your default schema, space_used_sp does not require this and displays all objects with the name you provide giving you the schema name as part of the output.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;space_used_sp vs. sp_spaceUsed&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://vsteamsystemcentral.com/cs21/photos/steve/picture241.aspx" target=_blank&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/241/original.aspx" border=0&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://vsteamsystemcentral.com/cs21/photos/steve/picture238.aspx" target=_blank&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://vsteamsystemcentral.com/cs21/photos/steve/picture238.aspx" target=_blank&gt;&lt;A href="http://vsteamsystemcentral.com/cs21/photos/steve/picture238.aspx" target=_blank&gt;&lt;/A&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Here it is:&amp;nbsp; (Note:everything is&amp;nbsp;created in a schema call metadata)&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;IF&amp;nbsp; EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[metadata].[space_used_vw]'))&lt;BR&gt;DROP VIEW [metadata].[space_used_vw]&lt;BR&gt;go&lt;BR&gt;create view metadata.space_used_vw&lt;BR&gt;-------------------------------------------&lt;BR&gt;--SFIBICH&lt;BR&gt;--7/7/2008&lt;BR&gt;--The purpose of this view is to show space used broken&lt;BR&gt;--down by SQL Server data files.&amp;nbsp; Currently is does not calculate&lt;BR&gt;--space for fulltext indexes and or XML indexes.&lt;BR&gt;--&lt;BR&gt;-------------------------------------------&lt;BR&gt;as&lt;BR&gt;select&lt;BR&gt;top 100 PERCENT&lt;BR&gt;coalesce([schema_name],' -db level-') schemaName&lt;BR&gt;,coalesce(table_name,' -schema level-') tableName&lt;BR&gt;,coalesce(data_file_name,' -table level-') dataFileName&lt;BR&gt;,[rowCount]&lt;BR&gt;,reserved*8 reservedKB&lt;BR&gt;,data*8 dataKB&lt;BR&gt;,case when used_page_count&amp;gt;data then (used_page_count-data)*8 else 0 end indexKB&lt;BR&gt;,case when reserved&amp;gt;used_page_count then (reserved-used_page_count)*8 else 0 end unusedKB&lt;BR&gt;from&lt;BR&gt;(&lt;BR&gt;&amp;nbsp;SELECT&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;t.name table_name&lt;BR&gt;&amp;nbsp;,df.name data_file_name&lt;BR&gt;&amp;nbsp;,s.name [schema_name]&lt;BR&gt;&amp;nbsp;,SUM(&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CASE&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;WHEN (p.index_id &amp;lt; 2) THEN row_count&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;ELSE 0&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&amp;nbsp; &lt;BR&gt;&amp;nbsp;)&amp;nbsp; [rowCount]&lt;BR&gt;&amp;nbsp;,SUM(reserved_page_count)+coalesce(max(IT_reserved_page_count),0) reserved &lt;BR&gt;&amp;nbsp;,SUM(&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CASE&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;WHEN (p.index_id &amp;lt; 2) THEN (in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count)&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;ELSE lob_used_page_count + row_overflow_used_page_count&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&amp;nbsp; &lt;BR&gt;&amp;nbsp;)data&amp;nbsp; &lt;BR&gt;&amp;nbsp;,SUM(used_page_count)+coalesce(max(IT_used_page_count),0) used_page_count &lt;BR&gt;&amp;nbsp; FROM sys.dm_db_partition_stats p&lt;BR&gt;&amp;nbsp;inner join&lt;BR&gt;&amp;nbsp;sys.objects t&lt;BR&gt;&amp;nbsp;on&lt;BR&gt;&amp;nbsp;p.object_id=t.object_id&lt;BR&gt;&amp;nbsp;inner join&lt;BR&gt;&amp;nbsp;sys.schemas s&lt;BR&gt;&amp;nbsp;on&lt;BR&gt;&amp;nbsp;t.schema_id=s.schema_id&lt;BR&gt;&amp;nbsp;inner join&lt;BR&gt;&amp;nbsp;sys.indexes i&lt;BR&gt;&amp;nbsp;on&lt;BR&gt;&amp;nbsp;p.object_id=i.object_id&lt;BR&gt;&amp;nbsp;and&lt;BR&gt;&amp;nbsp;p.index_id=i.index_id&lt;BR&gt;&amp;nbsp;inner join&lt;BR&gt;&amp;nbsp;sys.database_files df&lt;BR&gt;&amp;nbsp;on&lt;BR&gt;&amp;nbsp;i.data_space_id=df.data_space_id&lt;BR&gt;&amp;nbsp;left outer join&lt;BR&gt;&amp;nbsp;(--Internal tables are placed on the same filegroup as the parent entity. (BOL)&lt;BR&gt;&amp;nbsp;&amp;nbsp;select&lt;BR&gt;&amp;nbsp;&amp;nbsp;pp.object_id&lt;BR&gt;&amp;nbsp;&amp;nbsp;,min(pp.index_id) index_id&lt;BR&gt;&amp;nbsp;&amp;nbsp;,sum(p.reserved_page_count) IT_reserved_page_count&lt;BR&gt;&amp;nbsp;&amp;nbsp;,sum(p.used_page_count)&amp;nbsp; IT_used_page_count&lt;BR&gt;&amp;nbsp;&amp;nbsp;FROM &lt;BR&gt;&amp;nbsp;&amp;nbsp;sys.dm_db_partition_stats p&lt;BR&gt;&amp;nbsp;&amp;nbsp;inner join&lt;BR&gt;&amp;nbsp;&amp;nbsp;sys.internal_tables it&lt;BR&gt;&amp;nbsp;&amp;nbsp;on&lt;BR&gt;&amp;nbsp;&amp;nbsp;p.object_id = it.object_id&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;inner join&lt;BR&gt;&amp;nbsp;&amp;nbsp;sys.dm_db_partition_stats pp&lt;BR&gt;&amp;nbsp;&amp;nbsp;ON&lt;BR&gt;&amp;nbsp;&amp;nbsp;it.parent_object_id=pp.object_id&lt;BR&gt;&amp;nbsp;&amp;nbsp;WHERE &lt;BR&gt;&amp;nbsp;&amp;nbsp;it.internal_type IN (202,204)&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;group by&lt;BR&gt;&amp;nbsp;&amp;nbsp;pp.object_id&lt;BR&gt;&amp;nbsp;)it&lt;BR&gt;&amp;nbsp;on&lt;BR&gt;&amp;nbsp;p.object_id=it.object_id&lt;BR&gt;&amp;nbsp;and&lt;BR&gt;&amp;nbsp;p.index_id=it.index_id&lt;BR&gt;&amp;nbsp;group by &lt;BR&gt;&amp;nbsp;s.name&lt;BR&gt;&amp;nbsp;,t.name&lt;BR&gt;&amp;nbsp;,df.name&lt;BR&gt;&amp;nbsp;with rollup&lt;BR&gt;) dataTable&lt;BR&gt;order by &lt;BR&gt;[schema_name]&lt;BR&gt;,table_name&lt;BR&gt;,[rowCount] desc&lt;BR&gt;,data_file_name asc&lt;BR&gt;go&lt;BR&gt;IF&amp;nbsp; EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[metadata].[space_used_sp]') AND type in (N'P', N'PC'))&lt;BR&gt;DROP PROCEDURE [metadata].[space_used_sp]&lt;BR&gt;go&lt;BR&gt;create procedure metadata.space_used_sp&lt;BR&gt;-------------------------------------------&lt;BR&gt;--SFIBICH&lt;BR&gt;--7/7/2008&lt;BR&gt;--This is a replacement for sp_spaceused, it utlizes the view&lt;BR&gt;--[metadata].[space_used_vw].&amp;nbsp; Currently it only reports on tables&lt;BR&gt;--and the total for tables in a schema, or database level broken&lt;BR&gt;--down by database files.&lt;BR&gt;--&lt;BR&gt;-------------------------------------------&lt;BR&gt;@tableName sysname =null&lt;BR&gt;as&lt;BR&gt;if @tableName is null&lt;BR&gt;begin&lt;BR&gt;--------------------&lt;BR&gt;--&lt;BR&gt;--database, schema info&lt;BR&gt;--&lt;BR&gt;--------------------&lt;BR&gt;&amp;nbsp;select&lt;BR&gt;&amp;nbsp;' -db level-' schemaName&lt;BR&gt;&amp;nbsp;,' -schema level-' tableName&lt;BR&gt;&amp;nbsp;,dataFileName&lt;BR&gt;&amp;nbsp;,sum([rowCount]) [rowCount]&lt;BR&gt;&amp;nbsp;,sum(reservedKB) reservedKB&lt;BR&gt;&amp;nbsp;,sum(dataKB) dataKB&lt;BR&gt;&amp;nbsp;,sum(indexKB) indexKB&lt;BR&gt;&amp;nbsp;,sum(unusedKB) unusedKB&lt;BR&gt;&amp;nbsp;from&lt;BR&gt;&amp;nbsp;[metadata].[space_used_vw]&lt;BR&gt;&amp;nbsp;where&lt;BR&gt;&amp;nbsp;dataFileName &amp;lt;&amp;gt;' -table level-'&lt;BR&gt;&amp;nbsp;or&lt;BR&gt;&amp;nbsp;(&lt;BR&gt;&amp;nbsp;dataFileName =' -table level-'&lt;BR&gt;&amp;nbsp;and&lt;BR&gt;&amp;nbsp;schemaName=' -db level-'&lt;BR&gt;&amp;nbsp;and&lt;BR&gt;&amp;nbsp;tableName =' -schema level-'&lt;BR&gt;&amp;nbsp;)&lt;BR&gt;&amp;nbsp;group by&lt;BR&gt;&amp;nbsp;dataFileName&lt;BR&gt;&amp;nbsp;order by [rowCount] desc,dataFileName&lt;BR&gt;end&lt;BR&gt;else&lt;BR&gt;begin&lt;BR&gt;--------------------&lt;BR&gt;--&lt;BR&gt;--particular table&lt;BR&gt;--&lt;BR&gt;--------------------&lt;BR&gt;&amp;nbsp;select&lt;BR&gt;&amp;nbsp;schemaName&lt;BR&gt;&amp;nbsp;,tableName&lt;BR&gt;&amp;nbsp;,dataFileName&lt;BR&gt;&amp;nbsp;,[rowCount]&lt;BR&gt;&amp;nbsp;,reservedKB&lt;BR&gt;&amp;nbsp;,dataKB&lt;BR&gt;&amp;nbsp;,indexKB&lt;BR&gt;&amp;nbsp;,unusedKB&lt;BR&gt;&amp;nbsp;from&lt;BR&gt;&amp;nbsp;[metadata].[space_used_vw]&lt;BR&gt;&amp;nbsp;where&lt;BR&gt;&amp;nbsp;tableName &lt;A href="mailto:=@tableName"&gt;=@tableName&lt;/A&gt;&lt;BR&gt;end&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;go&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=236" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="Meta Data Management" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Meta+Data+Management/default.aspx" /><category term="Obscure T-SQL" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Obscure+T-SQL/default.aspx" /><category term="System Data Management" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/System+Data+Management/default.aspx" /></entry><entry><title>Ordering SSIS packages in Visual Studio 2005 (part II)</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/05/28/ordering-ssis-packages-in-visual-studio-2005-part-ii.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/05/28/ordering-ssis-packages-in-visual-studio-2005-part-ii.aspx</id><published>2008-05-29T00:19:00Z</published><updated>2008-05-29T00:19:00Z</updated><content type="html">&lt;P&gt;Ok the first post on Ordering SSIS packages in Visual Studio &lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;received &lt;/SPAN&gt;a large number of hits...no comments but a good number of hits so I figured a follow up was due.&amp;nbsp; After my first post I found myself ordering all of my SSIS packages with the order-ssisProj.ps1 code but I found it to be a bother since I had to put in the location of each .dtproj file.&amp;nbsp; So with this second post I will introduce a script I wrote a few days ago that orders all of my SSIS packages.&amp;nbsp; It finds any .dtproj file in&amp;nbsp;the default USERPROFILE + \my documents\ and orders them.&amp;nbsp; Before I get into the powershell script a quick intro about running a powershell script.&amp;nbsp; I'm not going to go into great detail other than to say you have to enable scripting in powershell.&amp;nbsp; Second you have to take the code below and put it into a text file and save it with a .ps1 extension.&amp;nbsp; (As always you use this script at your own risk...and you should always understand what code you grab off a website is doing)&lt;/P&gt;
&lt;P&gt;&lt;U&gt;order-SSISproj2.ps1&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;#-----------------------------------------------------------------------------&lt;BR&gt;#&lt;BR&gt;#SFIBICH&lt;BR&gt;#5/18/08&lt;BR&gt;#Version 1.0&lt;BR&gt;#order-SSISproj.ps1&lt;BR&gt;#This script saves a backup file as a .bak&lt;BR&gt;#This script will search the USERPROFILE enviorment variable + My documents&lt;BR&gt;#as its starting place for .dtproj files&lt;BR&gt;#This script allows args that will replace the default search path &lt;BR&gt;#Use at your own risk, no &lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;guarantees&lt;/SPAN&gt;&lt;BR&gt;#-----------------------------------------------------------------------------&lt;BR&gt;#&lt;BR&gt;#$ars[0] - relative path to the file name &lt;BR&gt;#$a = path to this file when executed&lt;BR&gt;#$c = counter variable &lt;BR&gt;#$i = counter for progress bar&lt;BR&gt;#$x = xml object varaible&lt;BR&gt;#$y = list of all dtproj files&lt;BR&gt;#$z = list of dtspackages node items inside the xml document&lt;BR&gt;#&lt;BR&gt;#-----------------------------------------------------------------------------&lt;BR&gt;$a=$^&lt;BR&gt;$i=0&lt;BR&gt;if ($args[0].length -gt 0) {&lt;BR&gt;&amp;nbsp;$fileLocation=$args[0]&lt;BR&gt;&amp;nbsp;if ($fileLocation -eq '?') {&lt;BR&gt;&amp;nbsp;&amp;nbsp;get-content $a | ? {$_.length -gt 0} | ? {$_.substring(0,1) -eq '#' }&lt;BR&gt;&amp;nbsp;&amp;nbsp;exit&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;else {&lt;BR&gt;&amp;nbsp;&amp;nbsp;date;$y=gci -path ($fileLocation) -include *.dtproj -recurse;date&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;}else{&lt;BR&gt;&amp;nbsp;write-warning('starting search for *.dtproj files at '+$x.value+'\My Documents\&amp;nbsp;&amp;nbsp; this is a recursive search and may take a while')&lt;BR&gt;&amp;nbsp;date;$y=gci -path ($x.value+'\My Documents\') -include *.dtproj -recurse;date&lt;BR&gt;}&lt;BR&gt;$y | % {&lt;BR&gt;&amp;nbsp;$i+=1&lt;BR&gt;&amp;nbsp;write-progress "re-ordering dtproj files- progress" "% complete" -perc ($i/$y.length*100)&lt;BR&gt;&amp;nbsp;$_.Name&lt;BR&gt;&amp;nbsp;[xml]$x = get-content $_.FullName &lt;BR&gt;&amp;nbsp;&amp;nbsp;$x.save($_.FullName+'.bak')&lt;BR&gt;&amp;nbsp;&amp;nbsp;$z=$x.project.dtspackages.dtspackage | sort-object -property name&lt;BR&gt;&amp;nbsp;&amp;nbsp;$c=0&lt;BR&gt;&amp;nbsp;&amp;nbsp;$z| % {if ($c -eq 0) {$c+=1} else {$x.project.dtspackages.RemoveChild($_)}} | out-null&lt;BR&gt;&amp;nbsp;&amp;nbsp;$z| % {if ($c -eq 1) {$c+=1} else {$x.project.dtspackages.AppendChild($_)}} | out-null&lt;BR&gt;&amp;nbsp;&amp;nbsp;$x.save($_.FullName)&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;order-SSISproj2.ps1&amp;nbsp;(the walk thru)&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Ok the first few lines 1 thru 22 are standard documentation.&amp;nbsp; This will be use later and is useful to anyone who wants to&amp;nbsp;update or modify the code in the future.&amp;nbsp;&amp;nbsp;Lines 23&amp;nbsp;grabs the first token of the previous command line (The file name in&amp;nbsp;this case) and assigns it to the variable&amp;nbsp;$a. Line 24 sets $i to a default value of 0.&amp;nbsp; Lines 24 thru 34 parse the arguments passed to the script to figure out&amp;nbsp;first&amp;nbsp;if there are any arguments and if they are what are they.&amp;nbsp; If&amp;nbsp;there where arguments passed to the script and they&amp;nbsp;happen to be '?'&amp;nbsp;(the help command) then&amp;nbsp;the&amp;nbsp;first argument of the previous commands contents are read. (basically go read the file that was entered into the command) Sending on the&amp;nbsp;lines with comments to the screen for ouptut.&amp;nbsp; If the&amp;nbsp;arguments passed to the script are not '?' then it is assumed that it is a starting location for a search&amp;nbsp;for *.dtproj files.&amp;nbsp; That directory and every directory inside it are searched for proj files and assigned to&amp;nbsp;the array $y.&amp;nbsp; Else the default search path is searched for *.dtproj files and those locations are assinged to the array $y.&amp;nbsp;Lines 38 thru 49 is where the bulk of the work happen.&amp;nbsp; Line 38 executes a for each on the $y array looping through the code block line 39 to 49.&amp;nbsp; Line 39 increments the $i variable so we can show progress.&amp;nbsp; Line 40 brings up the progress bar in powershell and shows the percent complete&amp;nbsp;incrementing with each loop through this code block. Line 41 writes the name of the file the script is working on to standard output.&amp;nbsp; Line 42 gets the content of the dtproj file for this loop and places it into a XML casted variable $x.&amp;nbsp; Now that line of code is not mine, I can't remember where I saw it but it is very slick!&amp;nbsp; Now I have an XML object to work with full of data!&amp;nbsp; First thing I do is to save the xml file&amp;nbsp;with the same file name and a.bak extension&amp;nbsp;just in case I&amp;nbsp;mess something up.&amp;nbsp; Line 43 grabs&amp;nbsp;all of the nodes in the project.dtspackages node and places them sorted into the $x variable.&amp;nbsp;&amp;nbsp;In line 45 I set the $c variable to 0 so I can check this later to know&amp;nbsp;how many times&amp;nbsp;I have gone thru inner loops.&amp;nbsp; Line 46 removes all&amp;nbsp;except for the&amp;nbsp;first dtspackage node objects, based on the ordered set in $x.&amp;nbsp; I had to do this because when I removed all of the nodes the&amp;nbsp;parent dtspackages node no longer existed and I couldn't add anything back to it.&amp;nbsp;Line 47 adds all of the dtspackage nodes&amp;nbsp;back in the sorted order.&amp;nbsp;Line 48 saves the file and then line 49 you loop back to start the next file.&amp;nbsp; That’s it short and sweet!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Ok and here is the before and after:&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Before (notice the XX_XXX_DX packages at the bottom)&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://vsteamsystemcentral.com/cs21/photos/steve/picture204.aspx" target=_blank&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/204/original.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;After (notice that the XX_XXX_DX packages are in the correct location)&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vsteamsystemcentral.com/cs21/photos/steve/images/205/original.aspx" border=0&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Once again I am not any way a powershell expert but I wanted to share a useful script that I developed for my own use with anyone who is working in an environment with a large number of SSIS packages in a single project or solution.&amp;nbsp; Let me know your thoughts?&amp;nbsp; If you have an improvement to the script send it to me or post it!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;/U&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=203" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="Random SSIS Info" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Random+SSIS+Info/default.aspx" /><category term="PowerShell" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/PowerShell/default.aspx" /><category term="System Data Management" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/System+Data+Management/default.aspx" /></entry><entry><title>Ordering SSIS packages in Visual Studio 2005</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/05/16/ordering-ssis-packages-in-visual-studio-2005.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/05/16/ordering-ssis-packages-in-visual-studio-2005.aspx</id><published>2008-05-17T00:45:00Z</published><updated>2008-05-17T00:45:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;Problem: SSIS Packages in Microsoft Visual Studio&amp;nbsp;2005 are ordered in the order of package creation by default, or more precisely the order they have been added to that solutions/projects folder.&amp;nbsp; What this means is that if you have an SSIS project that has more than a few SSIS packages let’s say 70+ it becomes an issue when you go to look for a particular package.&amp;nbsp; You can't just have a good naming scheme for your packages and hope to find them quickly (though that does help).&amp;nbsp;Because the packages are not ordered in alphabetical order and MSVS 2005 does not give you a way to change the default order easily you are stuck searching through what is pretty much&amp;nbsp;an un-ordered list.&amp;nbsp; Ok so if you have encountered this problem you know it’s real pain to deal with.&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;The Answer:&amp;nbsp; Visual Studio uses metadata in an xml file to know which packages are in your project and what you want these packages to be called.&amp;nbsp; Note:&amp;nbsp; The file names and the package names in the project do not have to be the same but they are by default.&amp;nbsp; This file is the [ProjectName].dtproj file located in the root of the project folder for any given&amp;nbsp;SSIS project.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;My Solution: Powershell to the rescue&lt;/P&gt;
&lt;P&gt;#------------------------------------------&lt;BR&gt;#&lt;BR&gt;#SFIBICH&lt;BR&gt;#5/16/08&lt;BR&gt;#Version 1.0&lt;BR&gt;#order-SSISproj.ps1&lt;BR&gt;#This script saves a backup file as a .bak&lt;BR&gt;#------------------------------------------&lt;BR&gt;#$ars[0] - relative path to the file name &lt;BR&gt;#$c = counter variable &lt;BR&gt;#$x = xml object varaible&lt;BR&gt;#------------------------------------------&lt;BR&gt;if ($args[0].length -gt 0) {&lt;BR&gt;&amp;nbsp;$fileLocation=$args[0]&lt;BR&gt;&amp;nbsp;[xml]$x = get-content $fileLocation &lt;BR&gt;&amp;nbsp;$x.save($fileLocation+'.bak')&lt;BR&gt;&amp;nbsp;$y=$x.project.dtspackages.dtspackage | sort-object -property name&lt;BR&gt;&amp;nbsp;$c=0&lt;BR&gt;&amp;nbsp;$y| % {if ($c -eq 0) {$c+=1} else {$x.project.dtspackages.RemoveChild($_)}}&lt;BR&gt;&amp;nbsp;$y| % {if ($c -eq 1) {$c+=1} else {$x.project.dtspackages.AppendChild($_)}}&lt;BR&gt;&amp;nbsp;$x.save($fileLocation)&lt;BR&gt;}else{&lt;BR&gt;&amp;nbsp;write-warning('Please enter the location of a SSIS project .dtproj file (NO WORK EXECUTED)')&amp;nbsp;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thats it I hope some of you find this useful!&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=202" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="Meta Data Management" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Meta+Data+Management/default.aspx" /><category term="Random SSIS Info" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Random+SSIS+Info/default.aspx" /><category term="PowerShell" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/PowerShell/default.aspx" /></entry><entry><title>trap [exception] { #insert code here} .... -ea stop</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/04/14/trap-exception-insert-code-here-ea-stop.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/04/14/trap-exception-insert-code-here-ea-stop.aspx</id><published>2008-04-15T01:33:00Z</published><updated>2008-04-15T01:33:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;First off I'm not &lt;A class="" href="http://thepowershellguy.com/blogs/posh/" target=_blank&gt;The PowerShellGuy&lt;/A&gt;&amp;nbsp;(if you want tons of powershell information go there first)...I'm just getting started with PowerShell but I can already see how it can be extremely useful to a database developer and database administrator.&amp;nbsp; I plan on posting on PowerShell from time to time in this blog when I find something particularly useful to either of the previously mentioned rolls but for now I'm going to go over the TRAP object in PowerShell more to the point of what I have learned on how to use it.&amp;nbsp; The trap object is pretty straight forward and is similar to a onError event.&amp;nbsp; The main thing I want to explain in this post is that any cmdlet that you want to trap an error needs its ErrorAction or -ea property set to stop.&amp;nbsp; That’s it, that short, that sweat, but I had a hard time finding anything on the web or in three different PS books (Not mentioned to protect the guilty) on how to properly execute a trap.&amp;nbsp; Below I give a simple example:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;$NoSuchDirectory="c:\noSuchDirectory"&lt;/P&gt;
&lt;P&gt;#nothing happens as expected....script continues&lt;BR&gt;function noTrap&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;get-childItem $NoSuchDirectory=&lt;BR&gt;}&lt;BR&gt;noTrap&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;#nothing happens as expected(?)....script continues&lt;BR&gt;function withTrap&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap {&lt;BR&gt;&amp;nbsp;&amp;nbsp;#insert trap info here&lt;BR&gt;&amp;nbsp;&amp;nbsp;"Trapped Error! kind of"&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;get-childItem $NoSuchDirectory=&lt;BR&gt;}&lt;BR&gt;withTrap&lt;/P&gt;
&lt;P&gt;#error is trapped....script stops then continues&lt;BR&gt;function withTrap_2&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap {&lt;BR&gt;&amp;nbsp;&amp;nbsp;#insert trap info here&lt;BR&gt;&amp;nbsp;&amp;nbsp;"Trapped Error! kind of"&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;get-childItem $NoSuchDirectory= -ea stop&lt;/P&gt;
&lt;P&gt;&amp;nbsp;#notice I've chanaged the ErrorAction on GCI to STOP from&lt;BR&gt;&amp;nbsp;#the default continue, this is what allows the script to &lt;BR&gt;&amp;nbsp;#trap the error.&amp;nbsp; If you change it to continue the trap&lt;BR&gt;&amp;nbsp;#never fires&lt;BR&gt;}&lt;BR&gt;withTrap_2&lt;BR&gt;"After the Trap"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Now I just need to figure out how to get the SQL 2008 powershell snapins to port over to a machine that doesn't have SQL 2008 installed on it.&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=191" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="PowerShell" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/PowerShell/default.aspx" /></entry><entry><title>theSystem part X</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/02/16/the-system-part-x.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/02/16/the-system-part-x.aspx</id><published>2008-02-17T01:55:00Z</published><updated>2008-02-17T01:55:00Z</updated><content type="html">&lt;P&gt;Well one of my topics, "theSystem"&amp;nbsp;listed in a &lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;previous &lt;/SPAN&gt;post &lt;A class="" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2007/11/28/two-projects.aspx"&gt;TwoProjects&lt;/A&gt; has moved over to &lt;A class="" href="http://www.sqlservercentral.com/" target=_blank&gt;SQL Server Central&lt;/A&gt;.&amp;nbsp; I may have some more background information on this project from time to time but the majority of the writing will take place at SQL Server Central.&amp;nbsp; If you missed the second article here is a link..."&lt;A class="" href="http://www.sqlservercentral.com/articles/Database+Design/61798/"&gt;theSystem"&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I'm still working on SOAK but its taken a backseat to the ramping up of a large project at my job, developing some&amp;nbsp;SQL Server for&amp;nbsp;iSereis programers training,&amp;nbsp;and a speaking engagement. (&lt;A class="" href="http://www.rvnug.org/CodeCamp.aspx"&gt;Roanoke Code Camp&lt;/A&gt;)&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=161" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="theSystem" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/theSystem/default.aspx" /></entry><entry><title>Connecting to an iSeries for SSIS Users (this pertains to any .Net connection)</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/02/16/connecting-to-an-iseries-for-ssis-users-this-pertains-to-any-net-connection.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/02/16/connecting-to-an-iseries-for-ssis-users-this-pertains-to-any-net-connection.aspx</id><published>2008-02-17T01:45:00Z</published><updated>2008-02-17T01:45:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;There are a number of useful pieces of information to be gleaned from reams and reams of documentation on both sides of the house when it comes to connect SSIS to an IBM iSeries.&amp;nbsp; I will try to present as much of it as I can in an easy to read fashion here.&amp;nbsp; I am going to start off with the basics- Terminology.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;General iSeries Terminology:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;iSeries – name for the actual hardware; re-branded to System I&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;i5/OS – Native operating system for AS/400 – previous called OS 400 operating system running on System I hardware&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;i5-Processor for the System I; System I –i5&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;DB2/400 – IBM’s DB database running on the OS 400 operating system.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This is different from DB2 UDB (IBM is not exactly clear on this sometimes)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;System I can run i5/OS(OS 400), AIX, UNIX(other tan AIX), LINUX, Windows (through the use of add on cards) &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;i5/OS (AS400) Terminology:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;DBFS – Database File System; Native AS/400 file system everything is an object in a database.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;IFS – Integrated File System; Windows compatible file system, folders, files.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;LPAR- Logical Partition- this is similar to a virtual server running &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;iASP – integrated Asynchronous Storage Pools; This allows the AS/400 to run multiple DB instances similar to a named SQL Server instance.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Not very common on this platform.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Also known as a Catalog&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Library – This matches to a schema on MS SQL Server.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Libraries are heavily used on the AS/400 much more common that schema use on MS SQL Server&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Files – Tables&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Logical Files – Logics – MS SQL Server equivalent is an indexed view. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Indexes – MS SQL Server equivalent to indexes&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Journals and Journal Receivers – This is how the 400 handles commitment control.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;(Basically a log file can be set at the object level)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;QGPL –General Purpose Library-Lots of things get dumped here by default including SQL Packages&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;SPAN style="FONT-FAMILY:'Wingdings 2';mso-fareast-font-family:'Wingdings 2';mso-bidi-font-family:'Wingdings 2';"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;¨&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;SQL Packages-Not 100% sure but it is required to run a disturbed SQL Program and handles the file system access plan. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Well thats it for now, I'll give more specific examples of the IBM OLE and ODBC drivers as well as MS DB2 OLE drivers in future posts.&lt;/P&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=160" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="Random SSIS Info" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Random+SSIS+Info/default.aspx" /><category term="iSeries" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/iSeries/default.aspx" /></entry><entry><title>Data Dictionary Part II</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/01/25/data-dictionary-part-ii.aspx" /><link rel="enclosure" type="text/plain" length="7446" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/attachment/147.ashx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/01/25/data-dictionary-part-ii.aspx</id><published>2008-01-25T17:26:00Z</published><updated>2008-01-25T17:26:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Ok, after putting up my first post on the Data Dictionary I had posters remorse.&amp;nbsp; There is a simple change that makes the script shown in the previous post a little more user friendly.&amp;nbsp; First the view metadata.columnsDataDictionary need to be changed from a SQL Select using a pivot to just a self join from the metadata.columnsExtendedProperties to allow for columns that shared the same domain to easily display different MS_Description values.&amp;nbsp; The second change was to allow the procedure metadata.columnsExtendedPropertiesRepopulate to allow for an overall overwrite or just to add new values and retain old MS_Description extended propertie values.&amp;nbsp; I don't think I mentioned this earlier the extended property of 'MS_Description' will be picked up by a number of development applications so it is useful to stick your data dictionary value in there but not to overwrite one if it came supplied with say a third part application installation or if you are allowing a third party applicaiton manage your descriptioins in the database.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Well thats it here is the code with a simple example:&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT color=#0000ff size=3&gt;USE&lt;/FONT&gt;&lt;FONT size=3&gt; [steves]&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;IF&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;EXISTS&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;SELECT&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;FROM&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;sys.views&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;WHERE&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;object_id&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;OBJECT_ID&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'[metadata].[columnsExtendedProperties]'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;))&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;DROP&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;VIEW&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsExtendedProperties]&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;IF&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;EXISTS&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;SELECT&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;FROM&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;sys.views&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=3&gt;WHERE&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;object_id&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;OBJECT_ID&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'[metadata].[columnsDataDictionary]'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;))&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;DROP&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;VIEW&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsDataDictionary]&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;IF&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;EXISTS&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;SELECT&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;FROM&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;sys.objects&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=3&gt;WHERE&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;object_id&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;OBJECT_ID&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'[metadata].[dataDictionary]'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;AND&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;type&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;in&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'U'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;))&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;DROP&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;TABLE&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[dataDictionary]&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;IF&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;EXISTS&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;SELECT&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;FROM&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;sys.objects&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=3&gt;WHERE&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;object_id&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;OBJECT_ID&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'[dbo].[testExtendedProperties]'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;AND&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;type&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;in&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'U'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;))&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;DROP&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;TABLE&lt;/FONT&gt;&lt;FONT size=3&gt; [dbo]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[testExtendedProperties]&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;IF&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;EXISTS&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;SELECT&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;FROM&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;sys.objects&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=3&gt;WHERE&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;object_id&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;OBJECT_ID&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'[metadata].[columnsExtendedPropertiesRepopulate]'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;AND&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;type&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;in&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'P'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; N&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'PC'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;))&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;DROP&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;PROCEDURE&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsExtendedPropertiesRepopulate]&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;SET&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ANSI_NULLS&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ON&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;SET&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;QUOTED_IDENTIFIER&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ON&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;SET&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ANSI_PADDING&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ON&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;CREATE&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;TABLE&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[dataDictionary]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;[domainName] [varchar]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;50&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;NOT&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;NULL,&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;[domainDesc] [varchar]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;1000&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;NOT&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;NULL,&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;PRIMARY&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;KEY&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;CLUSTERED&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;(&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;[domainName] &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ASC&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;)&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;WITH&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;PAD_INDEX&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;OFF&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;STATISTICS_NORECOMPUTE&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;OFF&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;IGNORE_DUP_KEY&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;OFF&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ALLOW_ROW_LOCKS&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ON&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ALLOW_PAGE_LOCKS&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ON&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ON&lt;/FONT&gt;&lt;FONT size=3&gt; [PRIMARY]&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ON&lt;/FONT&gt;&lt;FONT size=3&gt; [PRIMARY]&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;SET&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;ANSI_PADDING&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;OFF&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;go&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;exec&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domainName'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'metadata'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'dataDictionary'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domainName'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;exec&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domainDesc'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'metadata'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'dataDictionary'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domainDesc'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;insert&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;into&lt;/FONT&gt;&lt;FONT size=3&gt; metadata&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;dataDictionary&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;domainName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;domainDesc&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;values&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domainName'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'Short text name for the classification of a businessdata type or attribute'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;insert&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;into&lt;/FONT&gt;&lt;FONT size=3&gt; metadata&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;dataDictionary&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;domainName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;domainDesc&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;values&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domainDesc'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'Description of the a business data type or attribute'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;create&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;view&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsExtendedProperties] &lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;as&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;----------------------------------------------&lt;/P&gt;
&lt;P&gt;--Steve Fibich&lt;/P&gt;
&lt;P&gt;--1.11.2007&lt;/P&gt;
&lt;P&gt;--This view is used to match columns to their extended&lt;/P&gt;
&lt;P&gt;--properties. This is an extension of sys.extended_properties &lt;/P&gt;
&lt;P&gt;--system view.&lt;/P&gt;
&lt;P&gt;--&lt;/P&gt;
&lt;P&gt;----------------------------------------------&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;select&lt;/P&gt;
&lt;P&gt;top&lt;/FONT&gt;&lt;FONT size=3&gt; 100 &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;percent&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;s&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;name &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;as&lt;/FONT&gt;&lt;FONT size=3&gt; schemaName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;t&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;name &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;as&lt;/FONT&gt;&lt;FONT size=3&gt; TableName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;c&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;name &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;as&lt;/FONT&gt;&lt;FONT size=3&gt; columnName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;name &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;as&lt;/FONT&gt;&lt;FONT size=3&gt; EName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;value &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;as&lt;/FONT&gt;&lt;FONT size=3&gt; EDesc&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;c&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;column_id &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;as&lt;/FONT&gt;&lt;FONT size=3&gt; columnID&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;from&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;sys.extended_properties&lt;/FONT&gt;&lt;FONT size=3&gt; e&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;inner&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;join&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;sys.tables&lt;/FONT&gt;&lt;FONT size=3&gt; t&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;on&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;t&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;object_id&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;major_id&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;inner&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;join&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;sys.columns&lt;/FONT&gt;&lt;FONT size=3&gt; c&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;on&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;minor_id&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;c&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;column_id&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;and&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;major_id&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;c&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;object_id&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;inner&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;join&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;sys.schemas&lt;/FONT&gt;&lt;FONT size=3&gt; s&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;on&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;t&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;schema_id&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;s&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;schema_id&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;where&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;class&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;1&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;order&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;by&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/P&gt;
&lt;P&gt;s&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;name&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;t&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;name&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;c&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;column_id&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;name&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;create&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;view&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsDataDictionary] &lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;as&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;----------------------------------------------&lt;/P&gt;
&lt;P&gt;--Steve Fibich&lt;/P&gt;
&lt;P&gt;--1.11.2007&lt;/P&gt;
&lt;P&gt;--This view is used to match columns to their extended&lt;/P&gt;
&lt;P&gt;--properties. It does this for particular extended properties&lt;/P&gt;
&lt;P&gt;--"domain" and "MS_Description. It then pivots these results for a&lt;/P&gt;
&lt;P&gt;--more useful layout.&lt;/P&gt;
&lt;P&gt;--&lt;/P&gt;
&lt;P&gt;----------------------------------------------&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;select&lt;/P&gt;
&lt;P&gt;top&lt;/FONT&gt;&lt;FONT size=3&gt; 100 &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;percent&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;schemaName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;tableName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;columnName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;eDesc &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;as&lt;/FONT&gt;&lt;FONT size=3&gt; domain&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;cep2&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;eDesc &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;as&lt;/FONT&gt;&lt;FONT size=3&gt; MS_Description&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;from&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;(&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;select&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/P&gt;
&lt;P&gt;schemaName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;tableName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;columnName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;eDesc&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;eName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;columnId&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;from&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsExtendedProperties]&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;where&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;EName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; cep1&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;full outer&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;join&lt;/P&gt;
&lt;P&gt;(&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;select&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;schemaName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;tableName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;columnName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;eDesc&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;eName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;columnId&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;from&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;[metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsExtendedProperties]&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;where&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;EName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'MS_Description'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;)&lt;/FONT&gt;&lt;FONT size=3&gt; cep2&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;on&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;schemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;cep2&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;schemaName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;and&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;tableName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;cep2&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;tableName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;and&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;columnID&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;cep2&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;columnID&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;order&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;by&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;schemaName &lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;tableName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;cep1&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;columnID&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;
&lt;P&gt;go&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;create&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;proc&lt;/FONT&gt;&lt;FONT size=3&gt; metadata&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;columnsExtendedPropertiesRepopulate&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;----------------------------------------------&lt;/P&gt;
&lt;P&gt;--Steve Fibich&lt;/P&gt;
&lt;P&gt;--1.11.2007&lt;/P&gt;
&lt;P&gt;--This proc removes any 'MS_Description' extended properties&lt;/P&gt;
&lt;P&gt;--from any columns of any tables that have matching entires in the&lt;/P&gt;
&lt;P&gt;--metadata.datadictionary table and that have an extended propertie of 'domain'&lt;/P&gt;
&lt;P&gt;--This is to try to make keeping 'MS_Description' descripions upto date eaiser&lt;/P&gt;
&lt;P&gt;--&lt;/P&gt;
&lt;P&gt;--@overwrite=0 turns off overwriting so existing MS_Descriptions will be left alone&lt;/P&gt;
&lt;P&gt;--@overwrite=1 existing MS_Description values will be deleted and re-created&lt;/P&gt;
&lt;P&gt;--@debug =0 sets additional logging off&lt;/P&gt;
&lt;P&gt;--@debug=1 sets additional looging on&lt;/P&gt;
&lt;P&gt;--&lt;/P&gt;
&lt;P&gt;----------------------------------------------&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;@overwrite &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;bit&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;0&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@debug &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;bit&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;0&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;as&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;--if @debug=0&lt;/P&gt;
&lt;P&gt;-- BEGIN&lt;/P&gt;
&lt;P&gt;-- select @debug=debug from metadata.logging where schemaName='metadata'&lt;/P&gt;
&lt;P&gt;-- END&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;declare&lt;/FONT&gt;&lt;FONT size=3&gt; @schemaName &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;sysname&lt;/P&gt;
&lt;P&gt;declare&lt;/FONT&gt;&lt;FONT size=3&gt; @tableName &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;sysname&lt;/P&gt;
&lt;P&gt;declare&lt;/FONT&gt;&lt;FONT size=3&gt; @columnName &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;sysname&lt;/P&gt;
&lt;P&gt;declare&lt;/FONT&gt;&lt;FONT size=3&gt; @domainDesc &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;varchar&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;1000&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;declare&lt;/FONT&gt;&lt;FONT size=3&gt; extProp_cursor &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;cursor&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;for&lt;/P&gt;
&lt;P&gt;select&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/P&gt;
&lt;P&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;schemaName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;tableName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;e&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;columnName&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;dd&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;domainDesc&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;from&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;metadata&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;dataDictionary dd&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;inner&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;join&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;[metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsExtendedProperties] e&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;on&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;dd&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;domainName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;edesc&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;where&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;ename&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;open&lt;/FONT&gt;&lt;FONT size=3&gt; extProp_cursor&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;Fetch&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;next&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;from&lt;/FONT&gt;&lt;FONT size=3&gt; extProp_cursor &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;into&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;@schemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@tableName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@columnName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@domainDesc&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;while&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;@@fetch_status&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;0&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;BEGIN&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;if&lt;/FONT&gt;&lt;FONT size=3&gt; @debug&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;1&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;BEGIN&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;select&lt;/FONT&gt;&lt;FONT size=3&gt; @schemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@tableName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@columnName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@domainDesc&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;END&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;if&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(exists&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;select&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;from&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;::&lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;fn_listextendedproperty&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'MS_Description'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; @schemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; @tableName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; @columnName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;))&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;and&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;@overwrite&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;=&lt;/FONT&gt;&lt;FONT size=3&gt;0&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;))&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;BEGIN&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;execute&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_dropextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'MS_Description'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@schemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@tableName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@columnName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;END&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;if&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;not&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;exists&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;select&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;from&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;::&lt;/FONT&gt;&lt;FONT color=#ff00ff size=3&gt;fn_listextendedproperty&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'MS_Description'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; @schemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; @tableName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; @columnName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;))&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;BEGIN&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;execute&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'MS_Description'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@domainDesc&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@schemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@tableName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@columnName&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;END&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;Fetch&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;next&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;from&lt;/FONT&gt;&lt;FONT size=3&gt; extProp_cursor &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;into&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;@schemaName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@tableName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@columnName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;@domainDesc&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;END&lt;/P&gt;
&lt;P&gt;close&lt;/FONT&gt;&lt;FONT size=3&gt; extProp_cursor&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;deallocate&lt;/FONT&gt;&lt;FONT size=3&gt; extProp_cursor&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=3&gt;
&lt;P&gt;-----------------------------------------&lt;/P&gt;
&lt;P&gt;--Example Table and Extended Properties--&lt;/P&gt;
&lt;P&gt;-----------------------------------------&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;go&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;create&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;table&lt;/FONT&gt;&lt;FONT size=3&gt; dbo&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;testExtendedProperties&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;(&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;
&lt;P&gt;column1 &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;int&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;column2 &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;int&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;column3 &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;int&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;column4 &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;int&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;column5 &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;int&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;column6 &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;int&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;exec&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domainName'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'dbo'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'testExtendedProperties'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column1'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;exec&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domainDesc'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'dbo'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'testExtendedProperties'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column2'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;exec&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'3rdDomainDesc'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'dbo'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'testExtendedProperties'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column3'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;exec&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'4thDomainDesc'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'dbo'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'testExtendedProperties'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column4'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;exec&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'3rdDomainDesc'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'dbo'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'testExtendedProperties'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column5'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;exec&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=3&gt;sp_addextendedproperty&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'domain'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'4thDomainDesc'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'schema'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'dbo'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'table'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'testExtendedProperties'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'column6'&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;insert&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;into&lt;/FONT&gt;&lt;FONT size=3&gt; metadata&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;dataDictionary&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;domainName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;domainDesc&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;values&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'3rdDomainDesc'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'This is the 3rd domain description that we have it should be on column3 and column5'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;insert&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;into&lt;/FONT&gt;&lt;FONT size=3&gt; metadata&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;dataDictionary&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;
&lt;P&gt;(&lt;/FONT&gt;&lt;FONT size=3&gt;domainName&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT size=3&gt;domainDesc&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;values&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'4thDomainDesc'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=3&gt;'This is the 4th domain description that we have it should be on column4 and column6'&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;execute&lt;/FONT&gt;&lt;FONT size=3&gt; metadata&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;columnsExtendedPropertiesRepopulate&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;select&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;from&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsDataDictionary]&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;
&lt;P&gt;select&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;*&lt;/FONT&gt;&lt;FONT size=3&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=3&gt;from&lt;/FONT&gt;&lt;FONT size=3&gt; [metadata]&lt;/FONT&gt;&lt;FONT color=#808080 size=3&gt;.&lt;/FONT&gt;&lt;FONT size=3&gt;[columnsExtendedProperties]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;/FONT&gt;&lt;img src="http://vsteamsystemcentral.com/cs21/aggbug.aspx?PostID=147" width="1" height="1"&gt;</content><author><name>steve</name><uri>http://vsteamsystemcentral.com/cs21/members/steve.aspx</uri></author><category term="Meta Data Management" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Meta+Data+Management/default.aspx" /><category term="Obscure T-SQL" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Obscure+T-SQL/default.aspx" /><category term="Data Dictionary" scheme="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/tags/Data+Dictionary/default.aspx" /></entry><entry><title>Data Dictionary part I</title><link rel="alternate" type="text/html" href="http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/01/15/data-dictionary-part-i.aspx" /><id>http://vsteamsystemcentral.com/cs21/blogs/steve_fibich/archive/2008/01/15/data-dictionary-part-i.aspx</id><published>2008-01-15T17:26:00Z</published><updated>2008-01-15T17:26:00Z</updated><content type="html">&lt;FONT size=3&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;Having a data dictionary is an invaluable resource for not only for the&amp;nbsp;DBA but for&amp;nbsp;anyone, report writers or developers who need to work on a database that you have to manage or have developed yourself.&amp;nbsp; A good amount of time can be saved from answering the same questions over and over again if you can point to documentation&amp;nbsp;to answer any initial questions.&amp;nbsp; &amp;nbsp;Microsoft provides a way to keep a this information in each database without having to change the structure of any of the objects that already exist.&amp;nbsp; Extended Proper