方法 : 新規または既存のデータベースに変更を配置する

データベース プロジェクトに変更を加えたら、ビルド スクリプトを実行して、変更をデータベース サーバーに配置する必要があります。 ビルド スクリプトを生成すると、データベース プロジェクトのスキーマ、配置前スクリプト、および配置後スクリプトが、単一の .dbschema ファイルにコンパイルされます。 配置時にターゲット データベースが存在する場合は (データベースを常に再作成するように指定している場合は除く)、.dbschema ファイルとターゲット データベースを比較することによって更新スクリプトが作成されます。 ターゲット データベースが存在しない場合、またはデータベースを常に再作成するように指定した場合は、.dbschema ファイルで定義したスキーマを使用してデータベースが作成されます。 データベース プロジェクト、そのプロパティまたは内容が、最後にビルドまたは配置した時点から変更されている場合は、そのプロジェクトの配置時に最新の .dbschema ファイルを生成します。

Aa833271.alert_caution(ja-jp,VS.90).gif重要 :

データベース プロジェクトを配置する前に、プロジェクトのプロパティを設定してターゲット データベースの接続とデータベース名を指定する必要があります。 新規データベース プロジェクト ウィザードを使ってデータベース プロジェクトを生成した場合は、プロジェクトのプロパティが既に指定されている可能性があります。 プロジェクトのプロパティはいつでも変更できます。 詳細については、「方法 : データベース プロジェクトのデータベース プロパティを構成する」を参照してください。

必要なアクセス許可

データベース プロジェクトを配置するには、データベースを作成するために必要な権限 (新しい配置の場合)、およびそのデータベースのスキーマ オブジェクトを作成、変更、および削除するために必要な権限を持っている必要があります。

新規または既存のデータベースにデータベース プロジェクトを配置するには

  1. ソリューション エクスプローラで、配置するデータベース プロジェクトをクリックします。

    カスタム構成を作成した場合、[標準] ツール バーの [ソリューション構成] ボックスの一覧でカスタム構成の名前をクリックすると、その構成を使用することを指定できます。 既定では、データベース プロジェクトの構成が 1 つ定義されていて、既に選択済みの状態になっています。

  2. [ビルド] メニューの [配置] をクリックします。

    データベース プロジェクトのビルド スクリプトが (存在しない場合、または最新の状態でない場合は生成され)、配置されます。 [出力] ウィンドウに、次のように配置の結果が表示されます。

    ProjectName -> D:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.dbschema

    ------ 配置開始: プロジェクト: ProjectName、構成: Debug Any CPU ------

    スクリプト ProjectName.sql generated の配置

    ProjectName の作成

    dbo.ObjectName の作成

    .

    .

    .

    .

    ========== ビルド: 1 正常終了または最新の状態、0 失敗、0 スキップ ==========

    ========== 配置: 1 正常終了、0 失敗、0 スキップ ==========

コマンド ラインから新規または既存のデータベースにデータベース プロジェクトを配置するには

  1. コマンド プロンプト ウィンドウを開き、プロジェクト ディレクトリを参照します。

  2. コマンド プロンプトで、次の例のコマンド ラインを入力してデータベース プロジェクトを配置します (DatabaseProject はプロジェクトの名前)。

    MSBuild /t:Deploy DatabaseProject.dbproj

    Aa833271.alert_note(ja-jp,VS.90).gifメモ :

    MSBuild.exe は、PATH 環境変数で指定されるパスに存在している必要があります。 また、TargetDatabase および TargetConnectionString をデータベース プロジェクトで指定するか、またはコマンド ラインの一部として指定する必要があります。 ビルド スクリプトを生成するためのコマンド ライン構文の詳細については、「データベースのビルドおよび配置の概要」を参照してください。

    次のような結果が表示されます。

    Microsoft (R) Build Engine Version 3.5.21022.8

    [Microsoft .NET Framework, Version 2.0.50727.1433]

    Copyright (C) Microsoft Corporation 2007. All rights reserved.

    Build started 5/20/2008 1:36:58 PM.

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" on node 0 (Deploy target(s)).

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" (1) is building "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.deploymanifest" (2) on node 0 (DspDeploy target(s)).

    Deployment script ProjectName.sql generated

    :

    (1 row(s) affected)

    Done Building Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.deploymanifest" (DspDeploy

    target(s)).

    Done Building Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" (Deploy target(s)).

    Build succeeded.

    0 Warning(s)

    0 Error(s)

    Time Elapsed 00:00:07.32

複数のデータベースまたは複数のサーバーへの配置

スキーマは、複数のデータベースまたは複数のサーバーに配置できます。 変更されない少数のサーバーまたはデータベースに配置する場合 (たとえば、個人で使用する開発サーバーとステージング サーバーの両方に配置する場合)、複数のビルド構成を作成できます。 各ビルド構成に対して、異なるターゲット サーバーまたはデータベースを指定できます。 多数のサーバーを配置する必要がある場合、またはターゲット サーバーまたはデータベースの名前が定期的に変更される場合は、別の方法を使用してください。 次に、これらの方法について説明します。

複数のビルド構成を作成して複数のサーバーまたはデータベースに配置するには

  1. Visual Studio Team System Database Edition でデータベース プロジェクトを開きます。

  2. [ビルド] メニューの [構成マネージャ] をクリックします。

    [構成マネージャ] ダイアログ ボックスが表示されます。

  3. [アクティブ ソリューション構成] ボックスの一覧の [<新規作成>] をクリックします。

    [新しいソリューション構成] ダイアログ ボックスが表示されます。

  4. [名前] ボックスに、最初のサーバー構成の名前を入力します。

  5. 既定の構成でプロジェクトのプロパティを既に構成してある場合は、[設定のコピー元] ボックスの一覧の [既定値] をクリックします。

  6. [OK] をクリックします。

  7. [アクティブ ソリューション構成] ボックスの一覧の [<新規作成>] をクリックします。

    [新しいソリューション構成] ダイアログ ボックスが表示されます。

  8. [名前] ボックスに、2 番目のサーバー構成の名前を入力します。

  9. 既定の構成でプロジェクトのプロパティを既に構成してある場合は、[設定のコピー元] ボックスの一覧の [既定値] をクリックします。

  10. [閉じる] をクリックします。

  11. ソリューション エクスプローラでデータベース プロジェクトを右クリックし、[プロパティ] をクリックします。

  12. [ビルド] タブをクリックします。

  13. [構成] ボックスで、最初のサーバー構成の名前をクリックします。

  14. 最初のサーバー構成に一致するように、ターゲット接続およびデータベース名を変更します。

  15. [構成] ボックスで、2 番目のサーバー構成の名前をクリックします。

  16. 2 番目のサーバー構成に一致するように、ターゲット接続およびデータベース名を変更します。

  17. [ファイル] メニューの [選択されたファイルを上書き保存] をクリックして、構成設定を保存します。

    これで、標準ツール バーで構成を指定し、その構成をビルドまたは配置できます。

コマンド ラインからデータベースを配置するには

  • [コマンド プロンプト] ウィンドウで次のコマンド ラインを入力して、ビルド スクリプトを配置します。ビルド スクリプト名、サーバー名、およびターゲット データベース名は適切な値に置き換えてください。

    MSBuild /t:Deploy /p:TargetDatabase=TargetDatabaseName /p:BuildScriptName=YourBuildScript.sql DatabaseProjectName.dbproj

    Aa833271.alert_note(ja-jp,VS.90).gifメモ :

    複数のサーバーに配置するには、[コマンド プロンプト] ウィンドウで「/p:TargetConnectionString="Data Source=ServerName;Integrated Security=True;Pooling=False"」と指定して、ターゲット接続文字列のプロパティをオーバーライドする必要があります。

参照

処理手順

方法 : データベースのビルド スクリプトを準備する

概念

データベースのビルドおよび配置の概要

データベース プロジェクト設定の概要

Database Edition の用語の概要

その他の技術情報

チュートリアル (バージョン管理されたデータベース スキーマの作成および更新)