次の方法で共有


ScriptDrops プロパティ

スクリプト作成操作で、参照するコンポーネントを削除する Transact-SQL スクリプトを生成するかどうかを示す Boolean プロパティ値を取得します。値の設定も可能です。

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

構文

'宣言
Public Property ScriptDrops As Boolean
    Get
    Set
'使用
Dim instance As ScriptingOptions
Dim value As Boolean

value = instance.ScriptDrops

instance.ScriptDrops = value
public bool ScriptDrops { get; set; }
public:
property bool ScriptDrops {
    bool get ();
    void set (bool value);
}
member ScriptDrops : bool with get, set
function get ScriptDrops () : boolean
function set ScriptDrops (value : boolean)

プロパティ値

型: System. . :: . .Boolean
オブジェクトを削除する削除句を、生成されるスクリプトに含めるかどうかを示す Boolean 値です。
True の場合、参照するコンポーネントを削除する Transact-SQL スクリプトが、スクリプト作成操作で生成されます。
False (既定値) の場合、参照するコンポーネントを作成する Transact-SQL スクリプトが、スクリプト作成操作で生成されます。

説明

このオプションを True に設定した場合は、オブジェクトを削除する前にその存在が確認されます。

この表には、ScriptSchema、ScriptData、および ScriptDrops のプロパティ値の組み合わせに基づいたスクリプト作成時の動作が示されています。

プロパティ値

スクリプト作成時の動作

ScriptSchema = True

ScriptData = False

ScriptDrops = False

スキーマのみがスクリプト化されます。これが既定の動作です。

ScriptSchema = True

ScriptData = True

ScriptDrops = False

スキーマとデータの両方がスクリプト化されます。生成されたスクリプトはまずテーブルを作成してからデータを挿入するため、既存のデータに対する DROP ステートメントはスクリプト化されません。最初は、テーブルにデータが存在しません。

ScriptSchema = True

ScriptData = False

ScriptDrops = True

オブジェクトを削除するステートメントだけがスクリプト化されます。

ScriptSchema = True

ScriptData = True

ScriptDrops = True

スクリプトには、オブジェクトに対する DROP ステートメントが含まれます。オブジェクトが削除されるときにデータも削除されるため、DELETE ステートメントはスクリプト化されません。

ScriptSchema = False

ScriptData = False

ScriptDrops = 任意の値

少なくとも ScriptSchema プロパティと ScriptData プロパティのどちらかを True に設定する必要があることをユーザーに通知するエラーが発生します。

ScriptSchema = False

ScriptData = True

ScriptDrops = False

データのみがスクリプト化されます。新しいデータを挿入する前に既存のデータを削除するための DELETE ステートメントはスクリプト化されません。

ScriptSchema = False

ScriptData = True

ScriptDrops = True

データを削除するスクリプトのみが生成されます。この動作は、スキーマの処理方法と同じになります。

使用例

次のコード例では、参照されたコンポーネントをスクリプトの実行後に削除するように指定します。

Visual Basic

Dim scOps As New ScriptingOptions()
scOps.ScriptDrops = true

PowerShell

$scOps = New-Object Microsoft.SqlServer.Management.Smo.ScriptingOptions
$scOps.ScriptDrops = $TRUE