チュートリアル : 部分プロジェクトを使用したデータベース プロジェクトのパーティション化
部分プロジェクトを使用すると、データベース プロジェクトを特定のオブジェクトに分割して開発を進めることができます。 データベースを部分プロジェクトに分割することにより、更新の必要がないデータベース プロジェクトの一部をユーザーが誤って変更することを防止できます。 任意のオブジェクトまたはオブジェクトのグループを、部分プロジェクトとしてエクスポートできます。 たとえば、スキーマ定義とそのコンテンツをエクスポートしたり、オブジェクト型別にオブジェクトをエクスポートし、テーブルとビューを別のプロジェクトに分けたりできます。
このチュートリアルでは、次の手順を行います。
データベースの 1 つのスキーマと 2 つのテーブルの定義が含まれたソース プロジェクトを作成する。
スキーマおよびそのスキーマのテーブルの定義が含まれた部分プロジェクトをエクスポートする。
開発プロジェクトを作成する。
部分プロジェクトを開発プロジェクトにインポートする。
部分プロジェクトに定義されているテーブルを参照するストアド プロシージャを開発プロジェクトに定義する。
開発プロジェクトを構成、ビルド、および配置する。
前提条件
Visual Studio Team System Database Edition がインストールされており、SQL Server が実行されているサーバーに対する書き込みアクセス権を持っている必要があります。
ソース データベース プロジェクトおよびそのオブジェクトの作成
スキーマとテーブルが含まれたデータベース プロジェクトが既にある場合は、チュートリアルのこの手順で作成するプロジェクトの代わりにそれを使用できます。
ソース データベース プロジェクトを作成するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスが表示されます。
[プロジェクトの種類] ボックスの一覧で、[データベース プロジェクト] ノードを展開し、[SQL Server 2005] をクリックします。
メモ : 配置先データベースに異なるバージョンの SQL Server がある場合は、その SQL Server のバージョンに対応するプロジェクトの種類を指定できます。
[テンプレート] ボックスの一覧の [SQL Server 2005 データベース プロジェクト] をクリックします。
[名前] ボックスに「MySourceDatabase」と入力します。
[場所] ボックスで、データベース プロジェクトを作成するパスを入力するか参照し、[OK] をクリックします。
重要 : パスが長すぎると、このチュートリアルの後の手順で部分プロジェクトをインポートするときにエラーが発生することがあります。 短いパスを使用すると、これらのエラーの発生を防ぐことができます。
データベース プロジェクトが作成され、ソリューション エクスプローラに表示されます。 次に、スキーマおよびそのスキーマのテーブルを定義します。
スキーマを定義するには
[表示] メニューの [スキーマ ビュー] をクリックします。
[MySourceDatabase] ノードを展開し、[スキーマ] ノードを展開します。次に、[スキーマ] ノードを右クリックし、[追加] をポイントして、[スキーマ] をクリックします。
[新しい項目の追加] ダイアログ ボックスが表示されます。
[テンプレート] ボックスの一覧の [スキーマ] をクリックします。
[名前] ボックスに「Person」と入力し、[追加] をクリックします。
次に、新しいスキーマにテーブルを作成します。
Person スキーマのテーブルを定義するには
スキーマ ビューで [Person] ノードを右クリックし、[追加] をポイントして、[テーブル] をクリックします。
メモ : このチュートリアルを簡単にするために、表定義は更新しません。
[新しい項目の追加] ダイアログ ボックスが表示されます。
[テンプレート] ボックスの一覧の [スキーマ] をクリックします。
[名前] ボックスに「Contacts」と入力します。
[Person] ノードを右クリックし、[追加] をポイントして、[テーブル] をクリックします。
[新しい項目の追加] ダイアログ ボックスが表示されます。
[テンプレート] ボックスの一覧の [テーブル] をクリックします。
[名前] ボックスに「StateProvince」と入力します。
次に、Person スキーマとそのオブジェクトをエクスポートします。
オブジェクトを部分プロジェクトとしてエクスポート
オブジェクトを部分プロジェクトとしてエクスポートするには
ソリューション エクスプローラで [スキーマ オブジェクト] ノードを展開し、[スキーマ] ノードを展開します。
[Person] ノードが表示されます。
[Database Level Objects] ノードを展開し、[セキュリティ] ノードを展開して、[スキーマ] ノードを展開します。
[Person.schema.sql] ファイルが表示されます。
[Person] ノードをクリックします。 Ctrl キーを押しながら、[Person.schema.sql] ファイルをクリックします。
[Person] ノードと [Person.schema.sql] ファイルが強調表示されます。
[Person] ノードを右クリックし、[部分プロジェクトとしてエクスポート] をクリックします。
[名前を付けて保存] ダイアログ ボックスが表示されます。
[ファイル名] ボックスに「ExportedPersonSchema」と入力し、[保存] をクリックします。
部分プロジェクトを保存したフォルダ名をメモします。
[ファイル] メニューの [ソリューションを閉じる] をクリックします。 変更をソリューションに保存するかどうかを確認するメッセージが表示されたら、[はい] をクリックします。
次に、Person スキーマのテーブルを参照するストアド プロシージャを開発するプロジェクトを作成します。
開発データベース プロジェクトの作成
開発データベース プロジェクトを作成するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスが表示されます。
[プロジェクトの種類] ボックスの一覧で、[データベース プロジェクト] ノードを展開し、[SQL Server 2005] をクリックします。
メモ : 配置先データベースに異なるバージョンの SQL Server がある場合は、その SQL Server のバージョンに対応するプロジェクトの種類を指定できます。
[テンプレート] ボックスの一覧の [SQL Server 2005 データベース プロジェクト] をクリックします。
[名前] ボックスに「MyDevelopmentDatabase」と入力します。
[場所] ボックスで、データベース プロジェクトを作成するパスを入力するか参照し、[OK] をクリックします。
データベース プロジェクトが作成され、ソリューション エクスプローラに表示されます。 次に、前の手順でエクスポートした部分プロジェクトをインポートします。
部分プロジェクトのオブジェクトのインポート
部分プロジェクトをインポートするには
ソリューション エクスプローラで、[MyDevelopmentDatabase] プロジェクト ノードを右クリックし、[部分プロジェクトのインポート] をクリックします。
確認のダイアログ ボックスで、[はい] をクリックします。
[開く] ダイアログ ボックスで、MySourceDatabase からエクスポートする部分プロジェクトが含まれたフォルダを参照します。
[ExportedPersonSchema.files] ファイルをクリックし、[開く] をクリックします。
プロジェクトがアンロードされて再び読み込まれ、ソリューション エクスプローラに MySourceDatabaseBasePath という名前のフォルダが表示されます。
[MySourceDatabaseBasePath] フォルダを展開します。
このフォルダには、ソース データベースからエクスポートしたファイルが格納されています。
次に、Person スキーマに定義したテーブルを参照するストアド プロシージャを定義します。
インポートされたオブジェクトを参照するストアド プロシージャの定義
簡単なストアド プロシージャを定義するには
[表示] メニューの [スキーマ ビュー] をクリックします。
スキーマ ビューで、[MyDevelopmentDatabase] ノードを展開し、[スキーマ] ノードを展開します。
[Person] ノードを右クリックし、[追加] をポイントして、[ストアド プロシージャ] をクリックします。
[新しい項目の追加] ダイアログ ボックスが表示されます。
[名前] ボックスに「uspCountContacts」と入力し、[追加] をクリックします。
ストアド プロシージャがプロジェクトに追加され、Transact-SQL (T-SQL) エディタに表示されます。
T-SQL エディタで、コードを次のように更新します。
CREATE PROCEDURE [Person].[uspCountContacts] AS SELECT COUNT(*) FROM [Person].[Contacts]
[ファイル] メニューの [すべてを保存] をクリックします。
次に、開発データベース プロジェクトを構成し、それをビルドして、ターゲット データベースに配置します。
開発データベースの構成、ビルド、および配置
開発データベースを構成、ビルド、および配置するには
ソリューション エクスプローラで、[MyDevelopmentDatabase] ノードを右クリックし、[プロパティ] をクリックします。
[プロパティ] ページで [配置] タブをクリックします。
[配置動作] ボックスの一覧の [配置スクリプト (sql) を作成してデータベースに配置します] をクリックします。
[ターゲット データベースの設定] の [編集] をクリックします。
このプロジェクトの配置先となるサーバーへの接続を指定して、[OK] をクリックします。
[ファイル] メニューの [すべてを保存] をクリックします。
ソリューション エクスプローラで、[MyDevelopmentDatabase] ノードを右クリックし、[ビルド] をクリックします。
ソリューション エクスプローラで、[MyDevelopmentDatabase] ノードを右クリックし、[配置] をクリックします。
データベースが指定したサーバーに配置されます。
次の手順
この手順で、Person スキーマ、スキーマに定義したテーブル、およびストアド プロシージャが配置されます。 MyDevelopmentDatabase プロジェクトで作業する開発者が変更できるのはストアド プロシージャの定義のみで、テーブルの定義は変更できません。