逐步解說:使用複合專案分割資料庫專案
您可以使用「複合專案」(Composite Project),將大型資料庫分割成一組相依且一起部署的「資料庫專案」(Database Project),以便更有效地管理大型資料庫。 這個逐步解說將說明下列工作:
建立資料庫專案,並在其中定義您的資料庫結構描述
建立另一個資料庫專案,並在其中定義特定結構描述的資料表
建立第三個資料庫專案,並在其中定義特定結構描述的預存程序
設定、建置及部署第三個專案及其相依性
必要條件
您必須先安裝 Visual Studio,而且能存取執行 SQL Server 的伺服器。
為您的結構描述建立資料庫專案
若要建立來源資料庫專案
在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。
[新增專案] 對話方塊隨即開啟。
展開 [已安裝的範本] 底下的 [資料庫] 節點,然後按一下 [SQL Server]。
注意事項 如果您正在使用 Visual Studio Professional,請查看 [已安裝的範本],依序展開 [資料庫] 節點、[SQL Server] 節點,然後按一下 [進階]。
在範本清單中,按一下 [SQL Server 2008 資料庫專案]。
注意事項 如果您的目標資料庫有不同版本的 SQL Server,可以按一下符合您版本的專案類型。
在 [名稱] 中,輸入 MySchemaProject。
在 [位置] 中,輸入或瀏覽至您要建立資料庫專案的路徑。
在 [方案名稱] 中,輸入 MyCompositeSolution,然後按一下 [確定]。
資料庫專案就會在 [方案總管] 中建立並出現。 接下來,在專案中定義結構描述。
若要定義結構描述
按一下 [檢視] 功能表上的 [資料庫結構描述檢視]。
展開 [MySchemaProject] 節點,展開 [結構描述] 節點,以滑鼠右鍵按一下 [結構描述] 節點,指向 [加入],然後按一下 [結構描述]。
[加入新項目] 對話方塊隨即開啟。
在 [範本] 清單中,按一下 [結構描述]。
在 [名稱] 中,輸入 Person,然後按一下 [加入]。
在 [檔案] 功能表上按一下 [全部儲存]。
接下來,您要建置專案。
若要建置結構描述專案
在 [方案總管] 中,以滑鼠右鍵按一下 [MySchemaProject] 節點,然後按一下 [建置]。
注意事項 您必須建置這個專案,這樣一來專案中定義之結構描述的參考,就可以在後續的程序中解析。
接下來,您要為 Person 結構描述中的資料表建立專案。
為您的資料表建立資料庫專案
若要建立來源資料庫專案
在 [檔案] 功能表上,指向 [加入],然後按一下 [新增專案]。
[新增專案] 對話方塊隨即開啟。
展開 [已安裝的範本] 底下的 [資料庫] 節點,然後按一下 [SQL Server]。
注意事項 如果您正在使用 Visual Studio Professional,請查看 [已安裝的範本],依序展開 [資料庫] 節點、[SQL Server] 節點,然後按一下 [進階]。
在 [範本] 清單中,按一下 [SQL Server 2008 資料庫專案]。
在 [名稱] 中,輸入 MyTablesProject。
在 [位置] 中,輸入或瀏覽到此資料庫專案的所在路徑,然後按一下 [確定]。
資料庫專案就會在 [方案總管] 中建立並出現。
接下來,您要先加入結構描述專案的參考,才可以定義資料表專案中的資料表。
若要加入結構描述專案的參考
在 [方案總管] 中,展開 [MyTablesProject] 節點,以滑鼠右鍵按一下 [參考] 節點,然後按一下 [加入資料庫參考]。
[加入資料庫參考] 對話方塊隨即開啟。
在 [資料庫參考] 中,確認已指定 [目前方案中的資料庫專案]。
注意事項 如果這個方案不包括您所參考的專案,則改為按一下 [資料庫專案結構描述 (.dbschema)]。 例如,如果您要避免正在開發預存程序的小組成員不小心變更結構描述或資料表專案,就可以使用這個方法。
按一下 [MySchemaProject]。
重要事項 在複合專案中定義參考時,請勿指定伺服器變數與值或資料庫變數與值。 因為沒有定義變數,所以假設參考的專案會共用目前專案的目標伺服器和資料庫。
按一下 [確定]。
接下來,您要在新的結構描述中建立兩個資料表。
若要在 Person 結構描述中定義資料表
按一下 [檢視] 功能表上的 [資料庫結構描述檢視]。
按一下 [結構描述檢視] 工具列上的 [外部項目]。
因為 Person 結構描述是定義在不同的專案中,所以必須這樣做。
在 [結構描述檢視] 中展開 [MyTablesProject] 節點、[結構描述] 節點,以滑鼠右鍵按一下 [Person],指向 [加入],然後按一下 [資料表]。
注意事項 為了讓這個逐步解說更簡短,您不需要更新資料表定義。
[加入新項目] 對話方塊隨即開啟。
在 [範本] 清單中,按一下 [資料表]。
在 [名稱] 中輸入 Contacts。
以滑鼠右鍵按一下 [Person] 節點,指向 [加入],然後按一下 [資料表]。
[加入新項目] 對話方塊隨即開啟。
在 [範本] 清單中,按一下 [資料表]。
在 [名稱] 中,輸入 StateProvince。
接下來,您要建置資料庫專案。
若要建置資料表專案
在 [方案總管] 中,以滑鼠右鍵按一下 [MyTablesProject] 節點,然後按一下 [建置]。
接下來,您要為預存程序建立第三個資料庫專案。
為您的預存程序建立資料庫專案
若要為預存程序建立資料庫專案
在 [檔案] 功能表上,指向 [加入],然後按一下 [新增專案]。
[新增專案] 對話方塊隨即開啟。
展開 [已安裝的範本] 底下的 [資料庫] 節點,然後按一下 [SQL Server]。
注意事項 如果您正在使用 Visual Studio Professional,請查看 [已安裝的範本],依序展開 [資料庫] 節點、[SQL Server] 節點,然後按一下 [進階]。
在 [範本] 清單中,按一下 [SQL Server 2008 資料庫專案]。
在 [名稱] 中,輸入 MySprocProject。
在 [位置] 中,輸入或瀏覽到此資料庫專案的所在路徑,然後按一下 [確定]。
資料庫專案就會在 [方案總管] 中建立並出現。
接下來,您要修改預存程序專案,讓該專案參考結構描述專案。
若要加入結構描述專案的參考
在 [方案總管] 中,展開 [MySprocProject] 節點,以滑鼠右鍵按一下 [參考] 節點,然後按一下 [加入資料庫參考]。
[加入資料庫參考] 對話方塊隨即開啟。
在 [資料庫參考] 中,確認已指定 [目前方案中的資料庫專案]。
按一下 [MySchemaProject]。
重要事項 在複合專案中定義參考時,請勿指定伺服器變數與值或資料庫變數與值。 因為沒有定義變數,所以參考的所有專案都會部署至同一個目標伺服器和資料庫。
按一下 [確定]。
接下來,您要修改預存程序專案,讓該專案參考 MyTablesProject 專案。
若要加入資料表專案的參考
在 [方案總管] 中,以滑鼠右鍵按一下 [MySprocProject] 節點下的 [參考] 節點,然後按一下 [加入資料庫參考]。
[加入資料庫參考] 對話方塊隨即開啟。
在 [資料庫參考] 中,確認已指定 [目前方案中的資料庫專案]。
按一下 [MyTablesProject]。
重要事項 在複合專案中定義參考時,請勿指定伺服器變數與值或資料庫變數與值。 因為沒有定義變數,所以參考的所有專案都會部署至同一個目標伺服器和資料庫。
按一下 [確定]。
接下來,您將會在結構描述中建立預存程序。
若要定義預存程序,該程序參考 Person 結構描述中的資料表
按一下 [檢視] 功能表上的 [資料庫結構描述檢視]。
按一下 [結構描述檢視] 工具列上的 [外部項目]。
因為 Person 結構描述是定義在不同的專案中,所以必須這樣做。
在 [結構描述檢視] 中展開 [MySprocProject] 節點、展開 [結構描述] 節點,以滑鼠右鍵按一下 [Person],指向 [加入],然後按一下 [預存程序]。
[加入新項目] 對話方塊隨即開啟。
在 [名稱] 中輸入 uspCountContacts,然後按一下 [加入]。
預存程序隨即加入至專案中,並顯示在 Transact-SQL 編輯器中。
在 Transact-SQL 編輯器中,將程序更新為符合下列程式碼:
CREATE PROCEDURE [Person].[uspCountContacts] AS SELECT COUNT(*) FROM [Person].[Contacts]
在 [檔案] 功能表上按一下 [全部儲存]。
接下來,您要設定、建置及部署 MySprocProject 及其相依性。
設定、建置及部署您的資料庫
若要設定 MySchemaProject 以進行部署
在 [方案總管] 中,以滑鼠右鍵按一下 [MySchemaProject] 節點,然後按一下 [屬性]。
按一下屬性頁上的 [部署] 索引標籤。
在 [部署動作] 清單中,按一下 [建立部署指令碼 (.sql) 並部署到資料庫]。
按一下 [目標資料庫設定] 旁邊的 [編輯]。
指定要在其中部署資料庫專案的目標伺服器的連接,然後按一下 [確定]。
在 [目標資料庫名稱] 中輸入 MySprocProject。
重要事項 對於構成複合專案的全部三個專案,您必須指定相同的目標資料庫名稱,否則部署會失敗。
在 [檔案] 功能表上按一下 [全部儲存]。
接下來,您要設定 MyTablesProject 的屬性。
若要設定 MyTablesProject 以進行部署
在 [方案總管] 中,以滑鼠右鍵按一下 [MyTablesProject] 節點,然後按一下 [屬性]。
按一下屬性頁上的 [部署] 索引標籤。
在 [部署動作] 清單中,按一下 [建立部署指令碼 (.sql) 並部署到資料庫]。
按一下 [目標資料庫設定] 旁邊的 [編輯]。
指定要在其中部署資料庫專案的目標伺服器的連接,然後按一下 [確定]。
在 [目標資料庫名稱] 中輸入 MySprocProject。
重要事項 對於構成複合專案的全部三個專案,您必須指定相同的目標資料庫名稱,否則部署會失敗。
在 [檔案] 功能表上按一下 [全部儲存]。
接下來,您要設定 MySprocProject 的屬性。
若要設定 MySprocProject 以進行部署
在 [方案總管] 中,以滑鼠右鍵按一下 [MySprocProject] 節點,然後按一下 [屬性]。
按一下屬性頁上的 [部署] 索引標籤。
在 [部署動作] 清單中,按一下 [建立部署指令碼 (.sql) 並部署到資料庫]。
按一下 [目標資料庫設定] 旁邊的 [編輯]。
指定要在其中部署資料庫專案的目標伺服器的連接,然後按一下 [確定]。
在 [目標資料庫名稱] 中輸入 MySprocProject。
重要事項 對於構成複合專案的全部三個專案,您必須指定相同的目標資料庫名稱,否則部署會失敗。
在 [檔案] 功能表上按一下 [全部儲存]。
接下來,您要建置資料庫專案。
若要建置及部署開發資料庫
在 [方案總管] 中,以滑鼠右鍵按一下 [MySprocProject] 節點,然後按一下 [建置]。
在 [方案總管] 中,以滑鼠右鍵按一下 [MySprocProject] 節點,然後按一下 [部署]。
您的資料庫及其相依性已建置並部署到指定的目標伺服器。
後續步驟
您可以將這個方法同時用於資料庫中較小的區段。 如果您要使用預存程序的開發人員與資料表和結構描述定義分開,也可以參考 .dbschema 檔案而不要參考資料庫專案。