データベース プロジェクト設定の概要
データベース プロジェクト設定を使用して、データベースの特性およびビルド構成を制御します。 これらの設定は、以下のカテゴリに分けられます。
プロジェクト設定
ビルド イベント
参照
ビルド
Deploy
プロジェクト設定、ビルド イベント、および配置プロパティはデータベース プロジェクトに格納され、バージョン管理をとおして共有されます。
注意
ユーザー固有の設定は .dbproj.user ファイルに保存されます。 プロジェクト固有の設定は .dbproj ファイルに保存されます。
プロジェクト設定
次の表の設定は、このデータベース プロジェクトのすべての構成に対して適用されます。
フィールド |
既定値 |
説明 |
---|---|---|
製品バージョン |
データベース プロジェクトの作成時に指定した SQL Server のバージョン。 |
このデータベース プロジェクトの対象にする SQL Server のバージョンを指定します。 |
データベース モデルの照合順序 |
英語 (米国) (1033) - CI |
データベースのモデルを格納している基になる SQL Server Compact Edition データベースで、データの並べ替えと比較に使用する既定の規則を指定します。 この設定には、ターゲット データベースの照合順序にできるだけ近い値を指定します。 また、大文字と小文字を区別することができます。 たとえば、モデルでは大文字と小文字を区別しない照合順序を使用し、データベースには大文字と小文字を区別する照合順序を使用できます。 オブジェクト定義内の既定の照合順序をオーバーライドできます。
メモ
既定の照合順序はすべてのプラットフォームで同じです。既定値は現在のロケールに合わせて変更されません。既定の照合順序をロケールに適した照合順序に手動で設定する必要があります。
|
既定のスキーマ |
dbo |
オブジェクトを作成する規定のスキーマを指定します。 1 つ以上のオブジェクト定義を変更すると、この設定をオーバーライドできます。 |
ファイル名にスキーマ名を含める |
○ |
ファイル名のプレフィックスにスキーマを含めるかどうかを指定します (dbo.Products.table.sql など)。 このチェック ボックスをオフにすると、オブジェクトのファイル名はオブジェクト名.ObjectType.sql という形式になります。 |
カタログ プロパティ ファイル |
Properties\CatalogProperties.catalogproperties |
ターゲット データベースの詳細なプロパティ設定が含まれます。 すべてのプロパティは、SQL Server データベースのプロパティと一致します。 詳細については、Microsoft Web サイトの「[データベースのプロパティ] ([オプション] ページ)」のこのトピックを参照してください。 |
ビルド イベントの設定
以下の設定を使用すると、ビルド操作を開始する前に実行するコマンド ラインおよびビルド操作が完了した後で実行するコマンド ラインを指定できます。
フィールド |
既定値 |
説明 |
---|---|---|
ビルド前に実行するコマンド ライン |
なし |
プロジェクトをビルドする前に実行するコマンド ラインを指定します。 コマンド ラインを変更するには、[ビルド前の編集] をクリックします。 |
ビルド後のイベント コマンド ライン |
なし |
プロジェクトをビルドした後で実行するコマンド ラインを指定します。 コマンド ラインを変更するには、[ビルド後の編集] をクリックします。 |
ビルド後のコマンド ラインの実行条件 |
ビルドが成功したとき |
ビルド後のコマンド ラインを、常に実行するか、ビルドが成功したときにだけ実行するか、または、ビルドすることによってプロジェクト出力 (ビルド スクリプト) が更新されたときにだけ実行するかを指定します。 |
詳細については、「方法: ビルド前またはビルド後に実行するカスタム アクションを指定する」および「[ビルド前に実行するコマンド ライン] / [ビルド後に実行するコマンド ライン] ダイアログ ボックス (データベース プロジェクト)」を参照してください。
参照
このページを使用すると、データベース間参照に関連付けられたサーバー変数およびデータベース変数を定義できます。 また、これらの変数の値を指定できます。 詳細については、「データベース プロジェクトでの参照の使用」を参照してください。
ビルド設定
以下の設定を使用すると、ビルド スクリプトおよびターゲット データベースに関する操作を指定できます。 これらの設定は、指定する構成およびプラットフォームに固有であるため、通常はユーザーごとに異なります。
フィールド |
既定値 |
説明 |
ビルド出力パス |
. \sql\ |
データベース プロジェクトをビルドまたは配置するときに、ビルド スクリプトを生成する場所を指定します。 相対パスを指定する場合、データベース プロジェクト パスに対する相対パスを指定します。 パスが存在しない場合は、作成されます。 |
出力ファイル名の作成 |
DatabaseProjectName.sql |
データベース プロジェクトをビルドするときに生成されるスクリプトの名前を指定します。 [ビルド出力のファイル名を自動生成する] チェック ボックスをオンにしていると、このフィールドに指定した値は、自動生成されるファイル名によって上書きされます。 |
警告をエラーとして扱う |
X |
警告が発生したときにビルドと配置プロセスを中止するかどうかを指定します。 このチェック ボックスがオフの場合、警告が発生してもビルドと配置プロセスは続行されます。 これはユーザーではなくプロジェクトに固有の設定で、.dbproj ファイルに格納されます。 |
警告の表示なし |
空白 |
非表示にする警告を示す番号の一覧を、コンマまたはセミコロンで区切って指定します。 非表示として設定された警告は、[エラー一覧] ウィンドウには表示されません。また、[警告をエラーとして扱う] チェック ボックスがオンになっていたとしても、ビルドの成否には影響しません。
メモ
また、ある警告の種類について、データベース プロジェクト全体では非表示にせず、特定のファイルについて非表示にすることもできます。詳細については、「方法 : 特定の種類の警告を非表示にする」を参照してください。
|
Deploy
この設定を使用して、データベース プロジェクトの配置を制御できます。
フィールド |
既定値 |
説明 |
配置設定の構成 |
マイ プロジェクトの設定 |
他の開発者と共有しているプロジェクトの配置設定を変更するか、分離開発環境の設定を変更するかを指定します。 |
配置動作 |
配置スクリプト (.sql) を作成し、データベースに配置します |
作成した .sql スクリプトをターゲット サーバーに配置するか、配置せずにスクリプトを作成するかを指定します。 |
配置スクリプト名 |
ProjectName.sql |
配置スクリプトに使用する名前を指定します。 |
ターゲット接続 |
空白 |
指定したビルド構成のターゲットにするデータベース サーバーの接続情報を指定します。 |
ターゲット データベース名 |
DatabaseProjectName |
"ターゲット接続" フィールドに指定した接続で作成または更新するデータベースの名前を指定します。 |
配置構成ファイル
配置構成ファイルには、次の表のように、各配置対象に固有の詳細情報が含まれます。
フィールド |
既定値 |
説明 |
配置比較の照合順序 |
プロジェクトの照合順序を使用 |
ソース モデルとターゲット モデルを比較するとき、配置時に使用する照合順序を指定します。 [プロジェクトの照合順序を使用] をクリックすると、ソースの照合順序が使用されます。 [サーバーの照合順序を使用] をクリックすると、ターゲットの照合順序が使用されます。 |
データベース プロパティを配置する |
○ |
データベース プロジェクトを配置するときに、CatalogProperties.catalogproperties 設定を配置するかどうかを指定します。 |
データベースを常に再作成 |
X |
増分配置を実行する代わりにデータベースを削除して再作成するかどうかを指定します。 たとえば、データベースの新規の配置に対してデータベース単体テストを実行する場合、このチェック ボックスをオンにします。 このチェック ボックスがオフの場合、削除と再作成を行う代わりに、既存のデータベースが更新されます。 |
データ損失が発生する場合に増分配置をブロック |
○ |
更新するとデータが損失する場合に配置を中止するかどうかを指定します。 このチェック ボックスをオンにすると、データが損失する変更の場合は配置が中止され、エラーが表示されます。そのため、データの損失を回避できます。 たとえば、varchar(50) 列が varchar(30) に変更された場合、配置は中止されます。
メモ
配置がブロックされるのは、データ損失が発生する可能性のあるテーブルにデータが含まれる場合のみです。データが損失しない場合、配置は続行されます。
|
配置スクリプトをシングルユーザー モードで実行します。 |
X |
配置の実行時に、データベースをシングル ユーザー モードにするかどうかを指定します。 共有データベース サーバーに配置する場合、データベースの変更を配置するときにデータベースをシングルユーザー モードにする必要があります。 この手順を使用することで、プロジェクトを配置している間に他のユーザーが変更できなくなります。 このオプションは、データベース プロジェクトのプロパティの [プロジェクトの設定] タブでフルテキスト検索を有効にしている場合には使用できません。
重要
データベースをシングル ユーザー モードにすると、データベースに対する変更が配置されるとすぐに、そのデータベースに対する他の既存の接続がすべて切断されます。ROLLBACK IMMEDIATE 句では、データベースがシングルユーザー モードになったときに、保留中のトランザクションを直ちに終了することを指定します。
|
配置前にデータベースをバックアップする |
X |
配置を実行する前にデータベースをバックアップするかどうかを指定します。 このチェック ボックスがオフの場合、自動的なバックアップは実行されません。 チェック ボックスがオンの場合は、データベースをバックアップするステートメントが配置前スクリプトに追加されます。 バックアップ操作には、時間がかかることがあります。 データベースをビルドし、分離開発環境に配置する場合、ビルドおよび配置前にデータベースをバックアップしないことがあります。
重要
運用サーバーに配置する前は、常にデータベースをバックアップしてください。ビルドおよび配置処理の一環としてデータベースの自動的なバックアップを行わない場合、変更を配置する前に手動でデータベースをバックアップしてください。
|
ターゲット データベースにあってデータベース プロジェクトにないオブジェクトに対して DROP ステートメントを生成する |
X |
ターゲット データベースにあってデータベース プロジェクトにないオブジェクトを配置スクリプトから削除するかどうかを指定します。 プロジェクトの一部のファイルを除外して、ビルド スクリプトから一時的に削除できます。 ただし、ターゲット データベースに既存のバージョンのオブジェクトを残す場合があります。 [データベースを常に再作成] チェック ボックスがオンに設定されているとデータベースが削除されるため、このチェック ボックスの設定は無効になります。 |
ALTER ASSEMBLY ステートメントを使用して CLR 型を更新しないでください。 |
X |
ALTER ASSEMBLY ステートメントを使用して共通言語ランタイム (CLR) 型を更新するか、代わりに変更の配置時に、CLR 型をインスタンス化するオブジェクトを削除して再作成するかを指定します。 |
詳細な配置設定を次の表に示します。
フィールド |
既定値 |
説明 |
AbortOnFirstError |
True |
最初のエラーが発生したときに、配置を取り消すかどうかを指定します。 |
BuildtimeContributorsMustExist |
True |
プロジェクトを配置するときに配置コントリビューター (データベース プロジェクトのビルド時に登録したもの) を登録する必要があるかどうかを指定します。 |
CheckNewConstraints |
True |
制約を作成または再作成する場合、既定で NOCHECK オプションを使用して作成するかどうかを指定します。 配置スクリプトの末尾に、すべての制約を 1 組としてチェックするステートメント ブロックが追加されます。 このプロパティを True に設定すると、データ チェックが配置スクリプトの最後に実行されるため、配置プロセス中に (チェックや外部キー制約による) データ エラーが発生することなく、スキーマを配置できます。 |
CommentOutSetVarDeclarations |
False |
生成される配置スクリプトで SetVar 変数の宣言をコメント アウトするかどうかを指定します。 たとえば、SQLCMD.EXE などのツールを使用して配置するときにコマンド ラインで値を指定する場合などに、このオプションを選択します。 |
DisableAndReenableDdlTriggers |
True |
配置プロセスの開始時にデータ定義言語 (DLL) のトリガーを無効にし、配置プロセスの終了時に改めて有効にするかどうかを指定します。 |
DropConstraintsNotInSource |
True |
更新をデータベースに配置するときに、データベース プロジェクトに存在しない制約をターゲット データベースから削除するかどうかを指定します。 |
DropIndexesNotInSource |
True |
更新をデータベースに配置するときに、データベース プロジェクトに存在しないインデックスをターゲット データベースから削除するかどうかを指定します。 |
EnforceMinimalDependencies |
False |
プロシージャ、スカラー関数、およびテーブル値関数の本体を解析および解釈するかどうかを指定します。 この設定を有効にすると、本体内の依存関係は識別されませんが、オブジェクトの定義に対する変更は識別されます。 このオプションを True に設定すると、パフォーマンスは改善されますが、依存関係が失われて配置時に問題が起きる可能性があります。 |
GenerateDeployStateChecks |
True |
データベース名およびサーバー名がデータベース プロジェクトに指定された名前と一致することを検証するステートメントを、配置スクリプトに生成するかどうかを指定します。 |
IgnoreAnsiNulls |
False |
更新をデータベースに配置するときに、ANSI Nulls 設定の相違点を無視するか更新するかを指定します。 |
IgnoreAuthorizer |
False |
更新をデータベースに配置するときに、承認者の違いを無視するか更新するかを指定します。 |
IgnoreColumnCollation |
False |
更新をデータベースに配置するときに、列の照合順序の違いを無視するか更新するかを指定します。 |
IgnoreComments |
False |
更新をデータベースに配置するときに、コメントの違いを無視するか更新するかを指定します。 |
IgnoreCryptographicProviderFilePath |
False |
更新をデータベースに配置するときに、暗号化プロバイダーのファイル パスの違いを無視するか更新するかを指定します。 |
IgnoreDdlTriggerOrder |
False |
更新をデータベースまたはサーバーに配置するときに、データ定義言語 (DDL) トリガーの順序の違いを無視するか更新するかを指定します。 |
IgnoreDdlTriggerState |
False |
更新をデータベースに配置するときに、データ定義言語 (DDL) トリガーの有効状態または無効状態の違いを無視するか更新するかを指定します。 |
IgnoreDefaultSchema |
False |
更新をデータベースに配置するときに、ユーザーの既定のスキーマ設定が違う場合、その設定を更新するかどうかを指定します。 |
IgnoreDmlTriggerOrder |
False |
更新をデータベースに配置するときに、データ操作言語 (DML) トリガーの順序の違いを無視するか更新するかを指定します。 |
IgnoreDmlTriggerState |
False |
更新をデータベースに配置するときに、DML トリガーの有効状態または無効状態の違いを無視するか更新するかを指定します。 |
IgnoreExtendedProperties |
False |
更新をデータベースに配置するときに、拡張プロパティの違いを無視するか更新するかを指定します。 |
IgnoreFilegroupPlacement |
True |
更新をデータベースに配置するときに、ファイル グループに含まれるオブジェクトの配置の違いを無視するか更新するかを指定します。 |
IgnoreFillFactor |
True |
更新をデータベースに配置するときに、インデックス ストレージの FILL FACTOR の違いを無視するか警告を発行するかを指定します。 |
IgnoreIdentitySeed |
False |
更新をデータベースに配置するときに、ID 列のシードの違いを無視するか更新するかを指定します。 |
IgnoreIncrement |
False |
更新をデータベースに配置するときに、ID 列のインクリメントの違いを無視するか更新するかを指定します。 |
IgnoreIndexOptions |
False |
更新をデータベースに配置するときに、インデックス オプションの違いを無視するか更新するかを指定します。 |
IgnoreIndexPadding |
True |
更新をデータベースに配置するときに、インデックス パディングの違いを無視するか更新するかを指定します。 |
IgnoreKeywordCasing |
True |
更新をデータベースに配置するときに、キーワードの大文字と小文字の指定の違いを無視するか更新するかを指定します。 |
IgnoreLockHintsOnIndexes |
False |
更新をデータベースに配置するときに、インデックスのロック ヒントの違いを無視するか更新するかを指定します。 |
IgnoreLoginSids |
False |
更新をデータベースに配置するときに、セキュリティ識別子 (SID) の違いを無視するか更新するかを指定します。 |
IgnoreNotForReplication |
False |
更新をデータベースに配置するときに、NOT FOR REPLICATION 設定の違いを無視するか更新するかを指定します。 |
IgnoreObjectPlacementOnPartitionScheme |
True |
更新をデータベースに配置するときに、パーティション テーブルまたはインデックスのパーティションからファイル グループに対するマッピングの違いを無視するか更新するかを指定します。 |
IgnorePartitionSchemes |
False |
更新をデータベースに配置するときに、パーティション スキームと関数の違いを無視するか更新するかを指定します。 |
IgnorePermissions |
False |
更新をデータベースに配置するときに、アクセス許可の違いを無視するか更新するかを指定します。 |
IgnoreQuotedIdentifiers |
False |
変更をデータベースに配置するときに、引用符で囲まれた識別子設定の違いを無視するか更新するかを指定します。 |
IgnoreRoleMembership |
False |
更新をデータベースに配置するときに、ログインのロール メンバーシップを無視するか更新するかを指定します。 |
IgnoreRouteLifetime |
True |
SQL Server のルーティング テーブルにルートを保持する期間の違いを無視するか、更新をデータベースに配置するときに更新するかを指定します。 |
IgnoreSemicolonBetweenStatements |
True |
Transact-SQL ステートメント間のセミコロンの違いを無視するか、更新をデータベースに配置するときに更新するかを指定します。 |
IgnoreStatisticsSample |
True |
更新をデータベースに配置するときに、CREATE STATISTICS に使用するサンプルの違いを無視するか更新するかを指定します。 |
IgnoreTableOptions |
False |
更新をデータベースに配置するときに、テーブル オプションの違いを無視するか更新するかを指定します。 |
IgnoreUserSettingsObjects |
False |
更新をデータベースに配置するときに、ユーザー設定オブジェクトの違いを無視するか更新するかを指定します。 |
IgnoreWhitespace |
True |
更新をデータベースに配置するときに、空白の違いを無視するか更新するかを指定します。 |
IgnoreWithNocheckOnCheckContraints |
False |
更新をデータベースに配置するときに、CHECK 制約の WITH NOCHECK 句の値の違いを無視するか更新するかを指定します。 |
IgnoreWithNocheckOnForeignKeys |
False |
更新をデータベースに配置するときに、外部キーの WITH NOCHECK 句の値の違いを無視するか更新するかを指定します。 |
IncludeTransactionalScripts |
False |
データベースに配置するときに、可能な場合にトランザクション ステートメントを使用するかどうかを指定します。 |
ScriptDatabaseCollation |
True |
更新をデータベースに配置するときに、データベースの照合順序の違いを無視するか更新するかを指定します。 |
TreatVerificationErrorsAsWarnings |
False |
配置の検証中に発生したエラーを警告として扱うかどうかを指定します。 生成した配置計画がターゲット データベースに対して実行される前に、その計画のチェックが実行されます。 計画の検証では、ターゲット データベースのみに存在し、変更を実行するために削除する必要のあるオブジェクト (インデックスなど) の損失などの問題が検出されます。 検証によって、複合プロジェクトへの参照によって存在する依存関係 (テーブルやビューなど) がターゲット データベースには存在しない状況も検出されます。 最初のエラーで配置を停止するのではなく、すべての配置の問題を一覧で取得する場合などに、このオプションを選択します。 |
UnmodifiableObjectWarnings |
True |
ファイル サイズやファイル パスが異なる場合など、オブジェクト内で変更できない違いが検出されたときに、警告を生成するかどうかを指定します。 |
VerifyDeployment |
True |
配置の成功の妨げになる可能性のある問題が存在する場合に配置を停止するチェックを配置前に実行するかどうかを指定します。 たとえば、データベース プロジェクトには存在せず、配置するとエラーを引き起こす外部キーがターゲット データベースにある場合、配置が停止されることがあります。 |
参照
処理手順
方法: データベース プロジェクトおよびサーバー プロジェクトのビルド設定を構成する
方法: データベースおよびサーバー プロジェクトの配置設定を構成する
方法: コンパイル済みスキーマ (.dbschema) ファイルを生成するためにデータベース プロジェクトをビルドする
チュートリアル : バージョン管理されたデータベースの新規作成と配置
チュートリアル: 既存のバージョン管理されたデータベースへの変更の配置