次の方法で共有


Database.Script メソッド (ScriptingOptions)

スクリプト オプションで指定したとおりにデータベースを再作成するために使用できる Transact-SQL スクリプトを生成します。

名前空間:  Microsoft.SqlServer.Management.Smo
アセンブリ:  Microsoft.SqlServer.Smo (Microsoft.SqlServer.Smo.dll)

構文

'宣言
Public Function Script ( _
    scriptingOptions As ScriptingOptions _
) As StringCollection
'使用
Dim instance As Database 
Dim scriptingOptions As ScriptingOptions 
Dim returnValue As StringCollection 

returnValue = instance.Script(scriptingOptions)
public StringCollection Script(
    ScriptingOptions scriptingOptions
)
public:
virtual StringCollection^ Script(
    ScriptingOptions^ scriptingOptions
) sealed
abstract Script : 
        scriptingOptions:ScriptingOptions -> StringCollection  
override Script : 
        scriptingOptions:ScriptingOptions -> StringCollection
public final function Script(
    scriptingOptions : ScriptingOptions
) : StringCollection

パラメーター

戻り値

型: System.Collections.Specialized.StringCollection
スクリプト内の Transact-SQL ステートメントの一覧を含む StringCollection システム オブジェクトの値です。

実装

IScriptable.Script(ScriptingOptions)

説明

Script メソッドは、データベースの作成に使用される Transact-SQL ステートメントのセットを生成します。 このメソッドでは、データベースの作成に使用できるスクリプトしか生成されません。 テーブルなどの依存オブジェクトを含むデータベース全体については、Scripter オブジェクトを使用することにより、スクリプトを作成できます。

scriptingOptions パラメーターは、生成されたスクリプト内の情報にフィルターを適用するために使用されます。

生成されたスクリプトには、ドキュメントに記載されていない内部プロシージャが含まれている場合があります。これらは、完全なスクリプト出力を行うために必要です。

使用例

VB

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2012 database.
Dim db As Database
db = srv.Databases("AdventureWorks2012")
'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("AdventureWorks2012")

$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
      }
   }
}

関連項目

参照

Database クラス

Script オーバーロード

Microsoft.SqlServer.Management.Smo 名前空間

その他の技術情報

データベース オブジェクトでの作業

スクリプト

データベースの作成、変更、および削除

CREATE DATABASE (Transact-SQL)