Script 메서드
데이터베이스를 다시 만드는 데 사용할 수 있는 Transact-SQL 스크립트를 생성합니다.
네임스페이스: Microsoft.SqlServer.Management.Smo
어셈블리: Microsoft.SqlServer.Smo(Microsoft.SqlServer.Smo.dll)
구문
‘선언
Public Function Script As StringCollection
‘사용 방법
Dim instance As Database
Dim returnValue As StringCollection
returnValue = instance.Script()
public StringCollection Script()
public:
virtual StringCollection^ Script() sealed
abstract Script : unit -> StringCollection
override Script : unit -> StringCollection
public final function Script() : StringCollection
반환 값
유형: System.Collections.Specialized. . :: . .StringCollection
스크립트에 Transact-SQL 문 목록이 들어 있는 StringCollection 시스템 개체 값입니다.
구현
주의
The Script method generates a set of Transact-SQL statements that are used to create the database. This method generates a script that can be used to create the database only. The whole database, including dependent objects such as tables, can be scripted by using the Scripter object. 생성된 스크립트에는 문서화되지 않았으나 전체 스크립트 결과에 필요한 내부 프로시저가 포함될 수 있습니다.
예
VB
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'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
PowerShell
$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.Databases.Item("AdventureWorks2008R2")
$scrp = New-Object Microsoft.SqlServer.Management.Smo.Scripter($srv)
$scrp.Options.ScriptDrops = $FALSE
$scrp.Options.WithDependencies = $TRUE
Foreach ($tb in $db.Tables)
{
$smoObjects = $tb.Urn
If ($tb.IsSystemObject -eq $FALSE)
{
$sc = $scrp.Script($smoObjects)
Foreach ($st in $sc)
{
Write-Host $st
}
}
}