開始以小組開發大型資料庫

您必須先建立「資料庫專案」(Database Project)、「伺服器專案」(Server Project) 或「資料層應用程式專案」(Data-tier Application Project),然後從要管理的資料庫中匯入物件和設定,才能使用 Visual Studio 來管理「資料庫結構描述」(Database Schema) 的變更。 如果您要管理一個非常大的資料庫之變更,可能要分隔幾個資料庫專案之間的物件。 採取這個方法,您就可以控制哪些小組或開發人員可以新增、修改或刪除資料庫不同區段中的程式碼。

您可以使用兩種方法來將資料庫分隔成幾個較小的部分:

  • 複合專案 — 您可以將資料庫的區段定義成兩個或多個資料庫專案 (可以在同一個方案中,也可以參考已編譯的 .dbschema 檔),並透過資料庫專案參考來連結。 當您部署包含參考的專案時,也要部署被參考的所有專案。 複合專案中的專案之間不可循環參考。

  • 部分專案 — 您可以將資料庫專案的一個區段匯出為 .files 格式的檔案。 然後建立第二個資料庫專案,並包含這個部分專案 (即 .files 檔案)。 您可以接著在原始檔案上設定寫入權限,限制對這些檔案進行的變更。 因此,使用第二個專案的開發人員可以建立其他物件,參考這些唯讀的物件而不會修改到內容。 當您建置和部署第二個專案時,會建置這個資料庫的完整複本,包括唯讀的區段。 在部分專案中,可以使用循環參考。

每一種方法都有其限制,本主題稍後會詳細說明。

指定資料庫專案的類型

當您建立資料庫專案時,要指定對應於 SQL Server 版本的專案類型。 例如,如果您要管理的資料庫是以 SQL Server 2005 為基礎,則要指定 [SQL Server 2005 資料庫專案] 或 [SQL Server 2005 精靈]。 如果使用精靈,您不只可以建立專案,還可以進行一些建置和部署設定,以及同時匯入「資料庫物件」(Database Object) 和設定。

匯入資料庫物件和設定

在您建立專案後,可以從資料庫執行個體或指令碼匯入物件及設定。 當您從指令碼匯入資料庫時,就會驗證資料庫的物件定義,而無法剖析的陳述式則會放進 ScriptsIgnoredOnImport.sql 檔案中。 如果匯入的物件定義參考了已不存在的物件,您必須先解決這些錯誤才能建置及部署專案。 例如,您可能匯入了預存程序,但是該程序參考一個已不存在的表格。 若要解決這個錯誤,您可以移除該預存程序。

當您匯入大型的結構描述時,可能需要耗費許多時間來解決這類錯誤。 但是,小組成員在更新 Visual Studio Premium 中的結構描述時,就不會不知不覺中引入其他這類的錯誤。 當小組成員修改及儲存任何物件定義時,所有變更都會經過驗證,如此一來,小組成員就可以立即修正變更,並避免將這些錯誤部署至線上資料庫。 解決了物件定義中的警告後,您也應該考慮分析資料庫程式碼的設計問題、命名問題及效能問題。 如需詳細資訊,請參閱分析資料庫程式碼以改善程式碼品質

一般工作

一般工作

支援內容

進一步了解資料庫專案和部分與複合專案的限制:您可以閱讀有關如何使用資料庫專案以管理結構描述變更的基本概念。

獲得實務練習:您可以執行入門逐步解說,開始熟悉如何使用部分專案或複合專案,來分割資料庫。

以版本控制來管理現有的資料庫:您可以使用資料庫專案精靈來建立專案、進行專案設定,以及匯入結構描述。 如果您要稍後匯入結構描述,或者如果您沒有權限可存取要從其中匯入結構描述的資料庫時,也可以建立空專案。 匯入結構描述後,您就可以加入專案以進行版本控制。

分割資料庫專案以共用物件定義:您可以從一個資料庫專案匯出物件定義,然後在其他專案中重複使用。 即使對您匯入部分專案定義的專案擁有存取權限的小組成員,也不能修改已匯入的物件。 因此,您可以控制對資料庫程式碼的子集所做的變更。

新增參考以建立複合專案:您可以新增參考至資料庫專案,但不指定伺服器和資料庫變數的值,以建立一個複合專案。 當您部署專案時,也要部署被此專案參考的任何專案。

部分專案的使用與限制

下圖顯示有關部分專案的典型案例:

在 Database 版本中使用部分專案

Database 版中的部分專案

在這個範例中,專案包含兩個物件集。 您要讓另一位開發人員或小組新增預存程序至專案,但是不要讓他們不小心變更其他專案。 若要透過使用部分專案的方式來達到這個目標,您必須執行下列步驟:

  1. 按結構描述或按物件型別,將物件群組匯出成 A.files 和 B.files。

  2. 建立第二個資料庫物件,其他開發人員或小組可以在此建立預存程序 (有時是當做 Sprocs 來參考)。

  3. 將匯出的部分專案 (A.files 和 B.files) 匯入至第二個資料庫專案。

  4. 您可以限制原始程式碼控制權限,讓所匯入之部分專案中的物件僅供唯讀存取。

此時,另一個開發人員或小組就可以新增物件,並建置和部署他們自己的專案以測試變更。

如果您的資料庫所包含之物件的名稱很長,或是建立資料庫專案所在的路徑很長,則可能無法將部分專案 (.files 檔案) 匯入至另一個資料庫專案。 如果您採取下列建議的方法,就可以避免發生這些問題:

  • 在路徑名稱較短的資料夾中,建立自己的資料庫專案。 例如,"D:\MyProjects" 優於 "C:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects"。

  • 避免給資料庫物件過長的名稱。 外部索引鍵是最常見的名稱太長的物件類型。 如果您的外部索引鍵名稱是 "FK_ReferencingTable_ReferencedTable_ReferencedColumn1_ReferencedColumn2",則當您嘗試匯入內含該索引鍵定義的部分專案時,可能會顯示錯誤。

複合專案的使用與限制

下圖顯示有關複合專案的典型案例:

在 Database 版本中使用複合專案

Database 版中的複合專案

此範例中,您可以建立資料庫專案,內含您的結構描述之定義。 然後建立第二個資料庫專案,內含您的表格及檢視之定義,然後建立第三個資料庫專案,內含任何預存程序的定義。 第三個專案 (資料庫專案 C) 會參考其他兩個資料庫專案。 當您建置及部署第三個專案時,也會自動部署其他專案。

如果您使用複合專案,必須能夠獨立建置和部署每一個專案。 複合專案中的專案之間不可以循環相依。 您可以使用複合專案,依物件型別來分割資料庫。 例如,您可以將結構描述放在一個專案中、表格和檢視則放在另一個專案中,預存程序放入第三個專案。

相關案例