How to: Script Out the Dependencies for a Database in Visual Basic .NET
This section describes how to script a table and its dependencies in Visual Basic .NET.
The code example shows how to discover the dependencies and iterate through the list to display the results.
-
Start Visual Studio 2005.
-
From the File menu, select New Project. The New Project dialog box appears.
-
In the Project Types pane, select Visual Basic. In the Templates pane, select Console Application.
-
(Optional) In the Name box, type the name of the new application.
-
Click OK to load the Visual Basic console application template.
-
On the Project menu, select Add Reference item. The Add Reference dialog box appears. Select Browse and locate the SMO assemblies in the C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies folder. Select the following files:
Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.SqlEnum.dll
Microsoft.SqlServer.SmoEnum.dll
-
On the View menu, click Code.-Or-Select the Module1.vb window to display the code window.
-
In the code, before any declarations, type the following Imports statements to qualify the types in the SMO namespace:
Imports Microsoft.SqlServer.Management.Smo Imports Microsoft.SqlServer.Management.Common Imports System.Collections.Specialized
-
Insert the code that follows this procedure into the main program.
-
Run and build the application.
'Connect to the local, default instance of SQL Server. Dim srv As Server srv = New Server 'Reference the AdventureWorks database. Dim db As Database db = srv.Databases("AdventureWorks") 'Define a Scripter object and set the required scripting options. Dim scrp As Scripter scrp = New Scripter(srv) scrp.Options.ScriptDrops = False scrp.Options.WithDependencies = True 'Iterate through the tables in database and script each one. Display the script. 'Note that the StringCollection type needs the System.Collections.Specialized namespace to be included. Dim tb As Table Dim smoObjects(1) As Urn For Each tb In db.Tables smoObjects = New Urn(0) {} smoObjects(0) = tb.Urn If tb.IsSystemObject = False Then Dim sc As StringCollection sc = scrp.Script(smoObjects) Dim st As String For Each st In sc Console.WriteLine(st) Next End If Next