資料庫和伺服器專案概觀
您可以使用 Visual Studio Premium 來建立「資料庫專案」(Database Project) 或「伺服器專案」(Server Project) 並將專案放入版本控制下,藉以協助組織更有效地管理其資料庫開發作業。 這些離線表示包含物件定義、設定和部署指令碼,可讓您用來建立該資料庫 (或伺服器) 的個別執行個體或更新現有的執行個體。
您也可以根據組織的需求,共用部分專案或建立「複合專案」(Composite Project)。 如需詳細資訊,請參閱本主題後面的共用部分專案,或在資料庫專案中使用參考的<使用參考撰寫專案>一節。
可用的專案類型
您可以利用 Visual Studio 2010 Premium 來建立資料庫專案、伺服器專案和「資料層應用程式元件」(Data-tier Application Component,DAC) 專案。
資料層應用程式元件專案
DAC 是一種新的概念。 它是由 SQL Server 2008 R2 所導入,而且包含 SQL Server 資料庫的定義以及用戶端伺服器或 3 層應用程式所使用的支援執行個體物件。 DAC 包括資料庫物件 (例如資料表與檢視表) 以及執行個體實體 (例如登入)。 您可以使用 Visual Studio 來建立 DAC 專案、建置 DAC 封裝檔案,以及將該 DAC 封裝檔案傳送給資料庫管理員,以便部署至 SQL Server 資料庫引擎的執行個體上。 如需 DAC 專案所支援的功能清單,請參閱資料層應用程式支援的功能 (英文)。資料庫專案
資料庫專案包含資料庫中所有物件的定義。 此外,它也包含資料庫設定、建置設定和部署設定。伺服器專案
伺服器專案包含位於伺服器上或位於伺服器上 master 資料庫中之物件的定義。 此外,它也包含伺服器設定、建置設定和部署設定。
專案結構
[方案總管] 會顯示依照檔案所組織的專案。 [方案總管] 中的每個項目都會對應至已儲存的檔案或資料夾。 相反地,[結構描述檢視] 則顯示依照物件或結構描述所組織的專案,可讓您識別資料庫中的物件,無論這些物件是否定義在個別檔案中。
資料庫或伺服器專案可以包含下列物件型別:
屬性檔案
您的資料庫或伺服器專案會在 [屬性] 資料夾中包含具有屬性值的檔案。 您可以透過修改這些值,控制專案的部署方式。 例如,您可以指定資料庫設定、伺服器設定、SQLCMD 變數和資料庫權限。 如需詳細資訊,請參閱資料庫和伺服器專案中的屬性檔。資料產生計劃
資料產生計劃會包含您要如何針對想要部署或更新的資料庫產生實際和代表性測試資料的相關資訊。 如需詳細資訊,請參閱使用資料產生器產生資料庫的測試資料。結構描述比較
結構描述比較會包含資料庫專案與其他結構描述之間特定比較的相關資訊。 您可以藉由重新開啟 .scmp 檔案並重新整理比較,重新比較專案與該結構描述。 如需詳細資訊,請參閱比較和同步處理資料庫結構描述。結構描述物件
結構描述物件會定義於 .sql 檔案的集合中,而這些檔案則儲存在專案資料夾中。 大多數物件都會以個別檔案定義。 不過,資料表中的資料行以及預存程序或函式的參數則是例外。 資料行會儲存在資料表的定義中,而參數則儲存在預存程序或函式的定義中。 如需詳細資訊,請參閱建立和修改資料庫與伺服器物件。指令碼
除了您可能會用來管理資料庫或伺服器的任何指令碼以外,專案還會包含預先部署和部署後指令碼。 如需詳細資訊,請參閱建立和修改資料庫指令碼。
匯入物件和設定
在您建立專案之後,就可以從資料庫執行個體或指令碼匯入物件及設定。 當您匯入資料庫時,會驗證其物件定義,而無法剖析的陳述式則會放進 ScriptsIgnoredOnImport.sql 檔案中。 如果匯入的物件定義參考了已不存在的物件,您必須先解決這些錯誤才能建置及部署專案。 例如,您可能匯入了預存程序,但是該程序參考一個已不存在的表格。 若要解決這個錯誤,您可以移除該預存程序。
當您匯入大型結構描述之後,可能需要耗費許多時間來解決這類錯誤。 但是,小組成員在更新 Visual Studio Premium 中的結構描述時,就不會不知不覺中引入其他這類的錯誤。 當小組成員修改及儲存任何物件定義時,所有變更都會經過驗證,如此一來,小組成員就可以立即修正變更,並避免將這些錯誤部署至線上資料庫。
解決物件定義中的警告之後,您也應該考慮分析資料庫程式碼,以便找出有關設計、命名和效能的問題。 如需詳細資訊,請參閱分析資料庫程式碼以改善程式碼品質。
共用部分專案
如果您想要在多個專案中重複使用一組檔案,就可以將專案的任何部分匯出為部分專案。 這個動作會建立可讓您在一個或多個其他專案中包含的 .files 檔案。 例如,您可能有一些用來稽核所有資料庫的常用預存程序。 您可以某個專案中定義這些預存程序、匯出它們,然後在其他專案中包含它們。 只要採取這種方法,您就不需要在多個專案中維護相同的程式碼。 如需詳細資訊,請參閱 HOW TO:匯入和匯出部分資料庫專案。
安全性考量
您的資料庫專案和任何相關的 .dbschema 檔案都會包含資料庫資產的相關資訊。 您應該用限制原始程式碼之存取權的相似方式,限制資料庫專案和 .dbschema 檔案的存取權。
您可以使用下列方法來控制資料庫專案和 .dbschema 檔案的存取權:
將版本控制用於專案和適當的檔案系統權限
您可以將資料庫專案的存取權只授與需要存取權的開發人員。 此外,您也可以限制包含資料庫專案檔或 .dbschema 檔案之任何檔案共用的權限,防止未經授權的人員存取。使用部分專案分割資料庫專案
您可以將資料庫物件分割成許多專案,並且使用版本控制權限來控制能夠檢視或變更這些專案的人員。 如需詳細資訊,請參閱開始以小組開發大型資料庫。建立具有空白程序主體的 .dbschema 檔案
您可以建立一份不包含實作的預存程序複本,然後與必須呼叫這些程序但不需要查看其實作的開發人員共用該複本的 .dbschema 檔案。 如需如何參考 .dbschema 檔案的詳細資訊,請參閱在資料庫專案中使用參考。
相關案例
開始以小組開發資料庫
您可以建立資料庫物件和設定的離線表示並進行版本控制,來管理資料庫的變更。開始以小組開發參考其他資料庫的資料庫
您可以建立資料庫物件和設定的離線表示並進行版本控制,來管理資料庫的變更。 在該表示中,您可以定義跨資料庫參考來支援部署至不同的目標環境。開始以小組開發參考 SQLCLR 物件的資料庫
您可以建立資料庫物件和設定的離線表示並進行版本控制,來管理資料庫的變更。 在該表示中,您可以加入 SQLCLR 組件的參考,然後使用該組件中定義的物件。開始以小組開發參考共用伺服器物件的資料庫
您可以建立資料庫物件和設定的離線表示並進行版本控制,來管理資料庫的變更。 在該表示中,您可以加入包含伺服器物件 (例如登入或金鑰) 定義之共用伺服器專案的參考。開始以小組開發大型資料庫
您可以跨多個專案分隔物件,藉以管理大型資料庫的變更。開始以小組開發使用 XML 結構描述集合的資料庫
您可以針對將一個或多個 XML 結構描述集合用於具型別 XML 資料行的資料庫管理變更。