スクリプトの生成とパブリッシュ ウィザード

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

スクリプトの生成とパブリッシュ ウィザード を使用すると、 SQL Server データベース エンジン または Azure SQL データベースのインスタンス間でデータベースを転送するスクリプトを作成できます。 データベース用のスクリプトは、ローカル ネットワーク上のデータベース エンジンのインスタンスまたは SQL Databaseから生成できます。 生成したスクリプトは、データベース エンジンの別のインスタンスまたは SQL Databaseで実行できます。 また、ウィザードを使用して、Database Publishing Services を使用して作成された Web サービスに、データベースの内容を直接パブリッシュすることもできます。 スクリプトの作成は、データベース全体または特定のオブジェクトに限定して行うことができます。

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

はじめに

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

ホストされたサービスへのパブリッシュ

スクリプトの生成とパブリッシュ ウィザード を使用すると、スクリプトの作成に加えて、ホストされた特定の種類の SQL Server Web サービスにデータベースをパブリッシュできます。 SQL Server Hosting Toolkit には、CodePlex 上で共有されているソース プロジェクトとして Database Publishing Services が提供されています。 Database Publishing Services プロジェクトを使用すると、Web ホスティング プロバイダーの顧客がデータベースを簡単に Web サービスに配置できる一連の Web サービスを構築することができます。 SQL Server Hosting Toolkit のダウンロードの詳細については、「 SQL Server Database Publishing Services」をご覧ください。

データベースを Web ホスティング サービスにパブリッシュするには、ウィザードの [スクリプト作成オプションの設定] ページで [Web サービスにパブリッシュ] オプションを選択します。

アクセス許可

データベースをパブリッシュするには、少なくとも元のデータベースで db_ddladmin 固定データベース ロールのメンバーシップが必要です。 ホスティング プロバイダーの SQL Server のインスタンスにデータベース スクリプトをパブリッシュするには、少なくともターゲット データベースで db_ddladmin 固定データベース ロールのメンバーシップが必要です。

また、ホスティング プロバイダーのアカウントにアクセスしてデータベースをウィザードでパブリッシュするには、ユーザー名とパスワードを入力する必要があります。 ソース データベースをパブリッシュする前に、ホスティング プロバイダーにターゲット データベースを作成しておく必要もあります。 パブリッシュを実行すると、その既存のデータベースのオブジェクトは上書きされます。

スクリプトの生成とパブリッシュ ウィザードの使用

スクリプトを生成してパブリッシュするには

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

  2. [タスク] をポイントし、 [スクリプトの生成] を選択します。

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

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

[説明] ページ

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

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

[説明] ページ

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

このページでは、このウィザードで生成されたスクリプトに含めるオブジェクトを選択できます。 次のウィザード ページでは、これらのスクリプトを指定した場所に保存するか、これらのスクリプトを使用して、SQL Server Database Publishing Services がインストールされているリモートの Web ホスティング プロバイダーにデータベース オブジェクトをパブリッシュするかを選択できます。

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

すべての DB のスクリプトを作成

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

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

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

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

    特定のデータベースのスクリプトを作成

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

このページでは、スクリプトを指定した場所に保存するか、スクリプトを使用してリモートの Web ホスティング プロバイダーにデータベース オブジェクトをパブリッシュするかを指定します。 パブリッシュするには、Database Publishing Services Web サービスを使用してインストールされた Web サービスにアクセスできる必要があります。

[オプション] : スクリプトを指定した場所に保存する場合は、 [スクリプトを指定した場所に保存] をクリックします。 その後、データベース エンジンのインスタンスまたは SQL Databaseに対して、保存したスクリプトを実行できます。 リモートの Web ホスティング プロバイダーにデータベース オブジェクトをパブリッシュする場合は、 [Web サービスにパブリッシュ] をクリックします。

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

ノートブックとして保存

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

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

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

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

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

  • [プロバイダー] : 選択したオブジェクトのパブリッシュ先のデータベースをホストしている Web ホスティング サービスの接続情報を指定するプロバイダーを選択します。 プロバイダーを選択するには、 [プロバイダーの管理] ダイアログ ボックスにプロバイダーが少なくとも 1 つは表示される必要があります。

  • [対象になるデータベース] : 選択したオブジェクトのパブリッシュ先のデータベースを選択します。 対象になるデータベースを選択する前に、プロバイダーを選択する必要があります。

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

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

詳細オプション

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

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

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

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

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

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

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

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

  • [説明用ヘッダーを含める] : 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です。 詳細については、「 Collation and Unicode Support」を参照してください。

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

  • [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 Constraints and Check Constraints」を参照してください。

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

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

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

  • [インデックスのスクリプトを作成] : インデックスを作成するスクリプトを作成します。 既定値は Trueです。 インデックスを使用すると、データをすばやく検索できます。

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

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

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

概要ページ

スクリプト生成の概要

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

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

[スクリプトの保存またはパブリッシュ] ページ

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

[詳細] - [アクション] 列が表示され、ウィザードの進行状況を確認できます。 スクリプトが生成されると、このウィザードでは、選択内容に基づいて、スクリプトをファイルに保存するか、スクリプトを使用して Web サービスにパブリッシュします。 各手順が完了したときに、[結果] 列の値を選択すると、対応する手順の結果を確認できます。

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

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

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

スクリプトの保存

[完了]

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

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 に設定する方法」の手順に従ってください。

関連項目