スクリプト生成ウィザード

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

この記事では、スクリプトの生成ウィザードを使用して、SQL Server、Azure SQL Database、または Azure SQL Managed Instanceのインスタンス間でデータベースを転送するスクリプトを作成する方法について説明します。

ローカルネットワーク上の SQL Serverデータベース、または Azure SQL 用のスクリプトを生成できます。 生成されたスクリプトは、SQL Server の別のインスタンスまたは Azure SQL 上で実行できます。 スクリプトの作成は、データベース全体または特定のオブジェクトに限定して行うことができます。

スクリプト生成ウィザードの使用に関する詳細なチュートリアルについては、チュートリアル: スクリプト生成ウィザードに関するページをご覧ください。

前提条件

転送元と転送先のデータベースは、Azure SQL データベース、Azure SQL Managed Instance または SQL Server 2005 (9.x) 以降のバージョンを実行しているデータベース エンジンのインスタンス上に配置できます。

アクセス許可

スクリプトを生成するには、少なくとも元のデータベースで db_ddladmin 固定データベース ロールのメンバーシップが必要です。

スクリプト生成ウィザードを使用する

  1. オブジェクト エクスプローラーで、スクリプト化するデータベースを含んだインスタンスのノードを展開します。

  2. スクリプトを作成するデータベースを右クリックし、タスク>スクリプト生成 を選択します。

    スクリプト生成ウィザードのスクリーンショット。

  3. ウィザードの各ダイアログの手順を実行します。

[概要] ページ

このページには、スクリプトを生成する手順が説明されています。

[次回からこのページを表示しない] - スクリプト生成ウィザードを次回起動したときにこのページをスキップします。

[概要] ページのスクリーンショット。

[オブジェクトの選択] ページ

このページでは、このウィザードで生成されたスクリプトに含めるオブジェクトを選択できます。

データベース全体のスクリプトを作成するオプション - データベース内のすべてのオブジェクトのスクリプトを生成し、データベース自体のスクリプトを含める場合に選択します。

データベース全体のスクリプトのスクリーンショット。

[特定のデータベース オブジェクトの選択] - ウィザードを制限して、データベース内の選択した特定のオブジェクトのみのスクリプトを生成する場合に選択します。

  • [データベース オブジェクト] : スクリプトに含めるオブジェクトを少なくとも 1 つ選択します。

  • [すべて選択] : 利用可能なすべてのチェック ボックスをオンにします。

  • [すべて選択解除] : すべてのチェック ボックスをオフにします。 続行するには、1 つ以上のデータベース オブジェクトを選択する必要があります。

    特定のスクリプトのスクリーンショット。

[スクリプト作成オプションの設定] ページ

このページでは、選択した場所にウィザードでスクリプトを保存するかを指定します。

[オプション] : スクリプトを指定した場所に保存する場合は、 [スクリプトを指定した場所に保存] をクリックします。 その後、データベース エンジンのインスタンスまたは SQL Databaseに対して、保存したスクリプトを実行できます。

[スクリプトを指定した場所に保存] : 1 つまたは複数の Transact-SQL スクリプト ファイルを指定した場所に保存します。

[ノートブックとして保存] のスクリーンショット。

  • [ファイルに保存] - スクリプトを 1 つ以上の .sql ファイルに保存します。 参照ボタン ( ) を選択して、ファイルの名前と場所を指定します。

  • [Save as script file](スクリプト ファイルとして保存) : スクリプトを 1 つ以上の .sql ファイルに保存します。 参照ボタン ( ) を選択して、ファイルの名前と場所を指定します。 同じ名前のファイルが既に存在する場合にそのファイルを置き換えるには、 [既存のファイルの上書き] チェック ボックスをオンにします。 スクリプトを生成する方法を指定するには、 [Single script file](単一のスクリプト ファイル) または [One script file per object](オブジェクトごとに 1 つのスクリプト ファイル) を選択します。 スクリプト内で使用されるテキストの種類を指定するには、 [Unicode テキスト] または [ANSI テキスト] を選択します。

  • [クリップボードに保存] : Transact-SQL スクリプトをクリップボードに保存します。

  • [新しいクエリ ウィンドウで開く] - データベース エンジン クエリ エディター ウィンドウにスクリプトを生成します。 エディター ウィンドウが開いていない場合、スクリプトのターゲットとして新しいエディター ウィンドウが開きます。

  • [詳細設定] - スクリプトに関する拡張オプションを選択できる場合には、 [詳細オプション] ダイアログ ボックスが表示されます。

[スクリプト作成の詳細オプション] ページ

このページでは、このウィザードでスクリプトを生成する方法を指定できます。 さまざまなオプションを使用できます。 オプションが [データベース エンジンの種類] で指定したバージョンの SQL Server または SQL Database によってサポートされていない場合、グレーで表示されます。

詳細オプションのスクリーンショット。

[オプション] : 詳細オプションを指定するには、各オプションの右にある使用可能な設定の一覧から値を選択します。

[全般] : 次のオプションは、スクリプト全体に適用されます。

  • [ANSI Padding] - ANSI PADDING ON をスクリプトに含めます。 既定値は Falseです。

  • [ファイルに追加] : Trueの場合、 [スクリプト作成オプションの設定] ページで指定した既存のスクリプトの末尾に、このスクリプトを追加します。 Falseの場合、以前のスクリプトが新しいスクリプトで上書きされます。 既定値は Falseです。

  • [オブジェクトの有無を確認する] : True の場合、SQL オブジェクトの CREATE ステートメントの生成前に存在確認が追加されます。 例: テーブル、ビュー、関数、またはストアド プロシージャ。 CREATE ステートメントは、IF ステートメントでラップされます。 ターゲットがクリーンであることがわかっている場合、スクリプトはさらにクリーンなものになります。 ターゲットにオブジェクトが存在することを想定していない場合は、エラーとなります。 既定値は Falseです。

  • [エラー発生時にスクリプトを続行] : False の場合、エラーが発生した時点でスクリプト生成を停止します。 True の場合は、スクリプト生成を続行します。 既定値は Falseです。

  • [UDDT を基本型に変換] : Trueの場合、ユーザー定義データ型 (UDDT) を、その UDDT の作成に使用された基本データ型に変換します。 スクリプトを実行するデータベースに UDDT が存在しない場合は、True を使用します。 Falseの場合は、UDDT が使用されます。 既定値は Falseです。

  • [依存オブジェクトのスクリプトを生成] : 選択したオブジェクトのスクリプトを実行するにあたり、その他のオブジェクトも必要な場合は、それらのオブジェクトのスクリプトも生成します。 既定値は、スクリプト データベース全体オプションの場合は True特定のデータベース オブジェクトを選択する場合は False です。

  • [説明用ヘッダーを含める] : Trueの場合はスクリプトに説明用のコメントが追加され、オブジェクトごとに、スクリプトが複数のセクションに分割されます。 既定値は Falseです。

  • [If NOT EXISTS を含める] - Trueの場合は、オブジェクトが既にデータベースに存在するかどうかを確認するステートメントが追加されます。オブジェクトが既に存在する場合は、新しいオブジェクトは作成されません。 既定値は Falseです。

  • [システム制約名を含める] : False の場合、元のデータベースで自動的に名前を付けられた制約の既定値は、対象のデータベースで自動的に名前が変更されます。 Trueの場合、制約は元のデータベースと対象のデータベースで同じ名前になります。

  • [サポートされていないステートメントを含める] - Falseの場合は、選択したサーバーのバージョンまたはエンジンの種類でサポートされていないオブジェクトのステートメントをスクリプトに含めません。 Trueの場合は、サポートされていないオブジェクトをスクリプトに含めます。 サポートされていないオブジェクトの各ステートメントには、選択した SQL Server バージョンまたはエンジンの種類に対してスクリプトを実行する前にステートメントを編集する必要があるというコメントが付加されます。 既定値は Falseです。

  • [オブジェクト名を修飾するスキーマ] : 作成されるオブジェクトの名前にスキーマ名を含めます。 既定値は Trueです。

  • [バインドのスクリプトを作成] - デフォルトのオブジェクトとルール オブジェクトのバインドのスクリプトを生成します。 既定値は Falseです。 詳細については、「CREATE DEFAULT (Transact-SQL)」と「CREATE RULE (Transact-SQL)」を参照してください。

  • [スクリプトの照合順序] : 照合順序に関する情報をスクリプトに追加します。 既定値は Falseです。 詳細については、「照合順序および Unicode のサポート」を参照してください。

  • [既定のスクリプトを作成] : テーブル列の既定値を設定するために使用される既定のオブジェクトを含めます。 既定値は Trueです。 詳細については、「既定のコンパイル項目値」を参照してください。

  • [DROP および CREATE のスクリプトを作成] : [CREATE のスクリプトを作成] の場合、オブジェクトを作成する Transact-SQL ステートメントを追加します。 [DROP のスクリプトを作成] の場合、オブジェクトを削除する Transact-SQL ステートメントを追加します。 [DROP および CREATE のスクリプトを作成] の場合、スクリプトを作成するオブジェクトごとに Transact-SQL の DROP ステートメントとその後に CREATE ステートメントをスクリプトに追加します。 既定値は [CREATE のスクリプトを作成] です。

  • [拡張プロパティのスクリプトを作成] : オブジェクトに拡張プロパティが含まれている場合、それらの拡張プロパティをスクリプトに追加します。 既定値は Trueです。

  • [エンジンの種類のスクリプト] : 選択した SQL Database または SQL Server データベース エンジンのインスタンスのいずれかで実行できるスクリプトを作成します。 指定した種類でサポートされていないオブジェクトはスクリプトに追加されません。 既定値は、元のサーバーの種類です。

  • [サーバーのバージョン互換のスクリプト] : 選択したバージョンの SQL Serverで実行できるスクリプトを作成します。 あるバージョンの新機能のスクリプトを、それ以前のバージョン用に生成することはできません。 既定値は、元のサーバーのバージョンです。

  • [スクリプト ログイン] : スクリプトを生成するオブジェクトがデータベース ユーザーの場合に、このオプションを使用すると、そのユーザーに必要なログインが作成されます。 既定値は Falseです。

  • [オブジェクトレベル権限のスクリプトを作成] : データベース内のオブジェクトに権限を設定するためのスクリプトを追加します。 既定値は Falseです。

  • [統計のスクリプトを作成] - [統計のスクリプトを作成] に設定すると、オブジェクトの統計を再作成する CREATE STATISTICS ステートメントが追加されます。 [統計とヒストグラムのスクリプトを作成します] オプションを選択すると、ヒストグラムの情報も作成されます。 既定では、 [統計のスクリプトを作成しません] が設定されています。 詳細については、「 CREATE STATISTICS (Transact-SQL)」をご覧ください。

  • [USE DATABASE のスクリプトを作成] - スクリプトに USE DATABASE ステートメントを追加します。 データベース オブジェクトが適切なデータベースに作成されるようにするには、USE DATABASE ステートメントを含めます。 スクリプトが別のデータベースで使用される可能性がある場合は、False を選択して USE DATABASE ステートメントを除外します。 既定値は Trueです。 詳細については、「 USE (Transact-SQL)」を参照してください。

  • [スクリプトを作成するデータの種類] - スクリプトを作成する対象を選択します: [データのみ][スキーマのみ] 、またはその両方。 既定値は [スキーマのみ] です。

[テーブル/ビュー オプション] : 次のオプションは、テーブルまたはビューのスクリプトのみに適用されます。

  • [変更の追跡のスクリプトを作成] - 変更の追跡が元のデータベースまたは元のデータベースのテーブルで有効になっている場合に、変更の追跡のスクリプトを作成します。 既定値は Falseです。 詳細については、「変更の追跡について (SQL Server)」を参照してください。

  • [CHECK 制約のスクリプトを作成] - CHECK 制約をスクリプトに追加します。 既定値は Trueです。 CHECK 制約を追加すると、指定した条件を満たすデータのみがテーブルに入力されます。 詳細については、「UNIQUE 制約と CHECK 制約」を参照してください。

  • [データ圧縮オプションのスクリプトを作成] - データ圧縮オプションが元のデータベースまたは元のデータベースのテーブルで構成されている場合に、データ圧縮オプションのスクリプトを作成します。 詳細については、「データ圧縮」を参照してください。 既定値は Falseです。

  • [外部キーのスクリプトを作成] : 外部キーをスクリプトに追加します。 既定値は Trueです。 外部キーは、テーブル間のリレーションシップを示し、そのリレーションシップを適用します。

  • [フルテキスト インデックスのスクリプトを作成] : フルテキスト インデックスを作成するスクリプトを作成します。 既定値は Falseです。

  • [インデックスのスクリプトを作成] : インデックスを作成するスクリプトを作成します。 既定値は、スクリプト データベース全体オプションの場合は True特定のデータベース オブジェクトを選択する場合は False です。 インデックスを使用すると、データをすばやく検索できます。

  • [主キーのスクリプトを作成] : テーブルに主キーを作成するスクリプトを作成します。 既定値は Trueです。 主キーは、テーブルの各行を一意に識別します。

  • [トリガーのスクリプトを作成] : テーブルに DML トリガーを作成するスクリプトを作成します。 既定値は Falseです。 DML トリガーは、データベースで DML (データ操作言語) イベントが発生したときに起動されるようにプログラミングされた操作です。 詳しくは、「 DML Triggers」をご覧ください。

  • [一意キーのスクリプトを作成] : テーブルに一意キーを作成するスクリプトを作成します。 一意キーにより、重複するデータを入力できなくなります。 既定値は Trueです。 詳細については、「UNIQUE 制約と CHECK 制約」を参照してください。

概要ページ

GS の概要のスクリーンショット。

このページには、このウィザードで選択したオプションがまとめて表示されます。 オプションを変更するには、 [前へ] を選択します。 スクリプト生成を開始するには、 [次へ] を選択します。

[選択内容の確認] - ウィザードの各ページで行った選択の内容が表示されます。 ノードを展開すると、対応するページで選択したオプションが表示されます。

[スクリプトの保存] ページ

このページを使用して、実行中のウィザードの進行状況を監視します。

[詳細] - [アクション] 列が表示され、ウィザードの進行状況を確認できます。 ウィザードでスクリプトが生成されると、スクリプトがファイルに保存されます。 各手順が完了したときに、[結果] 列の値を選択すると、対応する手順の結果を確認できます。

[レポートの保存] - 選択すると、ウィザードの進行状況の結果がファイルに保存されます。

[キャンセル] - 処理が完了する前やエラーが発生した場合に選択してウィザードを閉じます。

[終了] - 処理が完了した後やエラーが発生した場合に選択してウィザードを閉じます。

スクリプトの保存

[終了] のスクリーンショット。

すべての設定が正しい場合は、構成が正常に終了します。

Azure Synapse Analytics でのスクリプト生成

"Script As..." を使用して生成された構文が Azure Synapse Analytics のような構文になっていないときや、エラー メッセージが表示されたときは、SQL Server Management Studio でスクリプト作成オプションを Azure Synapse Analytics に設定することが必要な場合があります。

デフォルトのスクリプト作成オプションを SQL Data Warehouse に設定する方法

Azure Synapse Analytics の構文を使用してオブジェクトのスクリプトを作成するためには、以下のようにしてデフォルトのスクリプト作成オプションを Azure Synapse Analytics に設定します。

  1. [ツール][オプション] の順に選択します。
  2. [SQL Server オブジェクト エクスプローラー][スクリプト] を選択します。
  3. [バージョン オプション] で、[スクリプト設定をソースに一致させる][False] に設定します。
    1. [データベース エンジンの種類に対応したスクリプト][Microsoft Azure SQL Database Edition] に設定します。
    2. Azure Synapse Analytics の専用 SQL プールの場合は、[データベース エンジン エディションのスクリプト][Microsoft Azure SQL Data Warehouse Edition] に設定します。
  4. [OK] を選択します。

SQL Data Warehouse がデフォルトのスクリプト作成オプションになっていない場合に SQL Data Warehouse のスクリプトを生成する方法

以前に Azure Synapse Analytics をデフォルトのスクリプト作成オプションとして設定した場合は、この手順を無視できます。 ただし、異なるデフォルトのスクリプト作成オプションを使用することを選択すると、エラーが発生する可能性があります。 エラーを避けるためには、次の手順に従って、 Azure Synapse Analyticsのスクリプトを生成します。

  1. [オブジェクト エクスプローラー] で、[データベース] の下にある専用 SQL プールを右クリックします。
  2. [スクリプトの生成] を選択します。
  3. スクリプトを作成するオブジェクトを選択します。
  4. [スクリプト作成オプション] で、 [詳細設定] を選択します。 [全般] で、次のように設定します。
    1. データベース エンジンの種類に対応したスクリプト:Microsoft Azure SQL Database
    2. データベース エンジン エディションのスクリプト:Microsoft Azure SQL Data Warehouse Edition
  5. [スクリプトの保存][終了] の順に選択します。

手順 4 で設定したオプションは記憶されません。 これらのオプションを保存する場合は、「デフォルトのスクリプト作成オプションを SQL Data Warehouse に設定する方法」の手順に従ってください。