共用方式為


Visual Studio 資料庫功能的架構概觀

Visual Studio 為資料庫開發人員提供了許多工具、特性和功能,這些與它為應用程式開發小組的其他成員所提供的一樣。 例如,您針對資料庫使用的版本控制系統和其他生命週期工具,就與軟體開發人員在原始程式碼中使用的版本控制系統和其他生命週期工具相同。 由於 Visual Studio的架構會與 Visual Studio Team Foundation Server 緊密整合,所以您可以輕鬆管理資料庫開發程序,同時改善與應用程式其他層面之開發人員之間的協調能力。

如需 Visual Studio 之資料庫開發支援功能的詳細資訊,請參閱管理資料庫變更

Visual Studio 整合

Visual Studio 不僅是核心架構與 Visual Studio Team Foundation Server 整合,就連不同元件之間的介面也保有一致性。 使用「資料庫專案」(Database Project)、「伺服器專案」(Server Project) 和「資料層應用程式專案」(Data-tier Application Project) 的許多方式與在 Visual Studio 中使用其他專案類型的方式相同。 特定資料庫的範本會出現在 [新增專案] 和 [加入專案項目] 對話方塊中。 此外,您也可以執行動作 (如建置和部署) 及進行專門用於資料庫開發的設定 (如目標資料庫連接和資料庫定序)。

資料庫專案會當成與現有專案類型同等級而一併出現在 [方案總管] 中。 您可以讓這些專案受版本控制、加入及移除專案項目,並使用 MSBuild 來加以建置。

架構上的組成

Visual Studio 包含以下的架構領域:

  • 資料庫專案

  • 資料庫週期基礎結構

每一個資料庫專案都是資料庫的離線表示,位於 Visual Studio 方案的結構中。 您必須建置及部署資料庫專案的變更,這些變更才會影響 Microsoft SQL Server 2005 或 Microsoft SQL Server 2008 的使用中執行個體。

資料庫週期基礎結構

資料庫週期基礎結構提供了資料庫專案與資料庫的邏輯表示 (模型) 之間的各種服務。 此基礎結構包含了任何資料庫專案所需的基礎功能, 這些功能統稱為資料庫專案基礎。 根據這個基礎所建置的功能稱為資料庫專案功能。

資料庫專案基礎

資料庫專案基礎包含以下核心功能:

  • 專案和專案項目剖析
    這項基礎會剖析資料庫專案成品和資料庫專案項目,如資料表、檢視表和預存程序。 如果進行剖析,這項基礎就會從組成資料庫專案的指令碼檔擷取關於「資料庫物件」(Database Object) 的資訊。 例如,當您從現有的資料庫指令碼匯入資料庫物件時,就會套用這項功能。 資料庫專案是由 Transact-SQL 指令碼的集合所組成; 資料庫專案系統會解譯這些指令碼,好讓您可以將這些指令碼當做邏輯結構描述物件來進行互動。

  • 匯入資料庫結構描述
    您可以藉由使用 [匯入資料庫結構描述],將現有的資料庫引進 Visual Studio,並讓它受版本控制。 即使在管理受版本控制之資料庫的環境下,使用中資料庫伺服器上仍然可能發生變更,因此您必須反映到資料庫專案中。 您可以使用 [結構描述比較],將資料庫伺服器的變更匯入到開發中的資料庫專案。

  • 追蹤資料庫物件之間的相依性
    資料庫專案系統會自動追蹤資料庫物件之間的相依性。 藉由追蹤物件之間的相依性,即可確定所建置及部署的物件為正確物件。 如果您要將重大變更反映到專案中,當您初次儲存該變更時,就會發現到這是重大變更。 您可以使用 [結構描述相依性檢視器] 檢視和巡覽資料庫物件之間的相依性。 一般來說,當您嘗試建置、部署或執行「資料庫單元測試」(Database Unit Test) 時,會發現重大變更。 「資料庫重構」(Database Refactoring) 會使用這些相依性來識別必要的變更,而資料產生可在「資料產生計劃」(Data Generation Plan) 中為您顯示相依性關係。

  • 資料庫重構
    資料庫重構會識別資料庫物件之間的相依性,並使用該項資訊在資料庫與單元測試專案中正確傳播變更。 資料庫重構只能在 Visual Studio Premium 和 Visual Studio Ultimate 中使用。

  • 針對新的和現有的部署建立部署指令碼
    部署指令碼會用來建立資料庫或更新現有的資料庫,使其符合資料庫專案中的結構描述。 部署指令碼是由「預先部署指令碼」(Pre-Deployment Script)、資料庫物件建立指令碼和「部署後指令碼」(Post-Deployment Script) 所組成。 如果您部署到現有的資料庫,在部署階段會將資料庫專案與目標資料庫的目前結構描述相比較。 會混用 ALTER、CREATE 和 DROP 陳述式來產生更新指令碼,以更新目標資料庫。

  • 驗證組建
    這項功能包括驗證資料庫專案中物件的結構和關聯性、驗證預先部署指令碼和部署後指令碼的語法,以及之後向您報告這些結果。

資料庫專案功能

除了為資料庫專案所提供的核心服務以外,也有其他功能建置於資料庫專案基礎之上。 這些功能包括下列各項:

  • 比較資料庫「結構描述」(Schemas)
    提供比較兩個資料庫結構描述的能力,不論這兩個結構描述是存在於目前的資料庫專案版本中、儲存於建置資料庫專案時所建立之已編譯的舊版 .dbschema 檔案中,還是其中一個或多個使用中資料庫中。 您也可以產生必要的指令碼,使目標資料庫的結構符合來源資料庫的結構。 結構描述比較只能在 Visual Studio Premium 和 Visual Studio Ultimate 中使用。

  • 比較資料庫資料
    當您的使用中資料庫具有相符的結構描述時,讓您能夠比較兩個資料庫中的資料。 您也可以產生必要的指令碼,使目標資料庫中的資料符合來源資料庫中的資料。 「資料比較」只能在 Visual Studio Premium 和 Visual Studio Ultimate 中使用。

  • 資料庫單元測試
    自動產生預存程序或函式的單元測試,並支援手動建立由任何有效 Transact-SQL 所組成的單元測試。 您可以藉由使用這項服務,驗證其他地方所引入的變更不會破壞您的工作。 在單元測試中,您可以自動建置及部署資料庫,並產生可重現的測試資料來建立一致的起始狀態。 這項服務也包含公用 API,您可使用該 API 來撰寫自訂測試條件,以便為單元測試加入可重複使用的驗證邏輯。 您可以在 Visual Studio Professional、Visual Studio Premium 或 Visual Studio Ultimate 中執行資料庫單元測試,但還是必須擁有 Visual Studio Premium 和 Visual Studio Ultimate,才能建立或修改資料庫單元測試。

  • 產生資料
    讓您能夠將真實的測試資料填入資料庫中,該測試資料不只是可能包含機密資訊的實際執行資料複本。 您也可以建立自訂資料產生器。 這項服務也包含一個公用 API,好讓您撰寫自訂資料產生器來搭配 CLR 資料型別、使用者定義型別及使用者定義資料型別一起使用,或是使用內建型別的自訂資料產生演算法。 您必須擁有 Visual Studio Premium 和 Visual Studio Ultimate,才能建立或修改資料產生計劃。

  • 撰寫及執行資料庫指令碼
    提供 Transact-SQL 編輯器,讓您可以在其中建立、分析及執行資料庫指令碼,與您可使用 Query Analyzer 或 SQL Server Management Studio 的方式類似。 這就是您在資料庫專案中用來修改指令碼的相同編輯器。 由於這是相同的編輯器,所以它提供了一致的使用者介面,不論您是使用離線資料庫專案,還是直接對即時資料庫伺服器執行指令碼。

命令列支援

您定期執行的某些活動必須能夠在自動程序中執行。 為了支援此情節,您可以建置資料庫專案、加以部署,以及從命令列執行單元測試,該命令列可包含產生代表性與可預測的測試資料。

請參閱

工作

逐步解說:建立隔離資料庫開發環境

逐步解說:建立隔離開發環境的基礎

逐步解說:在隔離的開發環境中執行反覆資料庫開發

概念

管理資料庫變更

擴充 Visual Studio 的資料庫功能