共用方式為


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

更新:2007 年 11 月

逐步解說:建立隔離資料庫開發環境中,您是以資料庫管理員的身分建立「資料庫專案」(Database Project),並從實際執行伺服器 (Production Server) 匯入「結構描述」(Schema) 和「資料庫物件」(Database Object) 定義。在第二個逐步解說中,您則建立了「資料庫單元測試」(Database Unit Test),以驗證現有功能並建立全新的基礎。在這個逐步解說 (本系列的第三個,也是最後一個) 中,您會執行常見的反覆開發工作:重新命名兩個資料庫資料行。您會在「隔離開發環境」(Isolated Development Environment) 中做這些變更,直到準備好共用變更為止,這對小組其他成員的風險會最低。

逐步解說將說明的工作包括:

  • 如何使用「資料庫重構」(Database Refactoring) 重新命名資料行,縮短更新資料行的所有參考需要的時間,並降低發生錯誤的機率。

  • 執行「資料庫單元測試」,驗證變更並不會影響現有的功能。

  • 將變更簽入版本控制,提供給小組其他成員使用。

必要條件

您必須先安裝好 Visual Studio Team System Database 版,而且能存取 Microsoft SQL Server 2005 的 AdventureWorks 範例資料庫。此外,這個逐步解說假設您已經完成了逐步解說:建立隔離資料庫開發環境逐步解說:建立隔離開發環境的基礎

重新命名資料庫資料行

常見的開發工作包括重新命名資料庫物件。在這個逐步解說中,您會將 [HumanResources].[Employee] 資料表中的 EmployeeID 資料行重新命名為 EmployeeNumber。有數個外部索引鍵和預存程序參考了 EmployeeID 資料行。若要手動進行變更,就必須修改多個檔案。在做任何修改之前,請先確定資料庫專案是最新的版本。

若要取得資料庫專案的最新版本

  1. 在 [Team 總管] 中,展開包含資料庫專案的 Team 專案節點。

  2. 按兩下 [原始檔控制] 節點,開啟 [原始檔控制總管]。

  3. 在 [原始檔控制總管] 中,以滑鼠右鍵按一下您的資料庫專案,然後按一下 [取得最新的版本]。

    包含資料庫專案的最新版本方案便會擷取至您的電腦上。

若要將 EmployeeID 重新命名為 EmployeeNumber

  1. 如果 AdvWorksSandbox 方案已在 [方案總管] 中開啟,請跳至步驟 4。

  2. 在 [檔案] 功能表上,指向 [開啟],並按一下 [專案/方案]。

    [開啟專案] 對話方塊隨即出現。

  3. 按一下 AdvWorksSandbox 方案,然後按一下 [開啟] (這個方案的預設位置是在 My Documents\Visual Studio 2005\Projects\AdvWorksSandbox)。

    AdvWorksSandbox 方案即會在 [方案總管] 中開啟。

  4. 開啟 [檢視] 功能表,然後按一下 [結構描述檢視]。

  5. 在 [結構描述檢視] 中,展開 AdvWorksSandbox 節點,然後展開 Tables 資料夾。

  6. 在 Tables 資料夾中,展開 HumanResources.Employee 資料表,然後展開 Columns 資料夾。

  7. 以滑鼠右鍵按一下 EmployeeID 資料夾,然後指向 [重構],再按一下 [重新命名]。

    [重新命名] 對話方塊隨即出現,其中會顯示現有資料行名稱。

  8. 在 [新名稱] 中輸入 EmployeeNumber。

  9. 如果未選取 [預覽變更] 核取方塊,請選取並按一下 [確定]。

    [ 預覽變更 - 重新命名] 對話方塊隨即出現,其中會顯示專案中的項目,這些項目都參考了正在重新命名的資料行。

  10. 按一下其中一項變更。

    變更的詳細資料會出現在 [預覽變更] 中。

  11. 檢視變更之後,按一下 [套用] 套用變更。

    修改的任何檔案會從版本控制簽出。

您可以在 [暫止的變更] 視窗中檢視暫止的變更。下列檔案應會出現在 [暫止的變更] 視窗中:

  • AWGenPlan.dgen

  • Employee.table.sql

  • Employee.PK_Employee_EmployeeID.sql

  • vSalesPerson.view.sql

  • uspGetManagerEmployees.proc.sql

  • vEmployee.view.sql

  • vEmployeeDepartmentHistory.view.sql

  • uspUpdateEmployeePersonalInfo.proc.sql

  • uspUpdateEmployeeHireInfo.proc.sql

  • uspUpdateEmployeeLogin.proc.sql

  • PurchaseOrderHeader.FK_PurchaseOrderHeader_Employee_EmployeeID.fkey.sql

  • Employee.FK_Employee_Employee_ManagerID.fkey.sql

  • EmployeePayHistory.FK_EmployeePayHistory_Employee_EmployeeID.fkey.sql

  • EmployeeDepartmentHistory.FK_EmploymentDepartmentHistory_Employee_EmployeeID.fkey.sql

  • JobCandidate.FK_JobCandidate_Employee_EmployeeID.fkey.sql

  • EmployeeAddress.FK_EmployeeAddress_Employee_EmployeeID.fkey.sql

  • SalesPerson.FK_SalesPerson_Employee_EmployeeID.fkey.sql

  • Employee.uEmployee.trigger.sql

執行資料庫單元測試

在做任何變更之後和簽入版本控制之前,請執行資料庫單元測試,確定應用程式仍能正常運作,然後才將變更提供給小組共用。

若要執行資料庫單元測試以找出任何可能的問題

  1. 指向 [測試] 功能表上的 [視窗],然後按一下 [測試檢視]。

    [測試檢視] 視窗會列出數項測試。預設會建立名為 ManualTest1 和 TestMethod1 的測試。dbo_uspGetManagerEmployeesTest 和 dbo_ufpLeadingZeroTest 是在前一個逐步說明中建立的測試。

  2. 選取 dbo_uspGetManagerEmployeesTest 和 dbo_ufpLeadingZeroTest 的核取方塊,以滑鼠右鍵按一下其中一個,然後按一下 [執行選取範圍]。

  3. 檢視 [測試結果] 視窗中的結果。

    資料庫專案會部署至隔離開發環境,接著產生測試資料,最後測試執行並通過。

將資料庫專案與實際執行環境比較

您可以針對更新的資料庫專案和實際執行資料庫,比較兩者的結構描述有何不同。由於只比較結構描述,而不是更新其中任一個,因此可以指定任一個做為比較的來源或目標。

若要將資料庫專案結構描述與實際執行資料庫比較

  1. 指向 [資料] 功能表上的 [結構描述比較],然後按一下 [新增結構描述比較]。

    [新增結構描述比較] 對話方塊隨即出現。

  2. 接受 [來源結構描述] 的預設值。

    這時指定的是資料庫專案 AdvWorksSandbox。

  3. 在 [目標結構描述] 的 Database 清單中,按一下最初匯入資料庫結構描述之來源 AdventureWorks 資料庫的連接,然後按一下 [確定]。

    結構描述便會進行比較。兩者的差異之處應該只有您在這個逐步解說中所做的變更。

  4. 瀏覽結構描述之間的差異。完成時關閉 [結構描述比較] 視窗。

    您現在可以提供變更給小組共用。

簽入變更

在確認所有變更都已準備好與其他小組成員共用時,即可將變更簽入版本控制。變更會簽入方案中,這通常包括資料庫專案、單元測試專案,以及任何相關聯的應用程式程式碼和應用程式單元測試。

若要簽入變更以供小組使用

  1. 指向 [檢視] 功能表上的 [其他視窗],然後按一下 [暫止的變更]。

    [暫止的變更] 視窗隨即出現。

  2. 在 [註解] 中輸入 Renamed EmployeeID column。

  3. 在 [暫止的變更] 視窗中,按一下工具列上的 [簽入]。

    [簽入] 進度對話方塊隨即出現,顯示資料庫專案和所包含的檔案簽入版本控制的進度。[方案總管] 中的圖示會更新,表示檔案已簽入版本控制。

後續步驟

針對小組要部署到實際執行環境的每個資料庫版本,上面的反覆程序會不斷地執行。每位開發人員都會在隔離環境中做變更、測試變更正確與否,然後再將更新簽入版本控制以供小組共用。將資料庫部署至實際執行環境的程序是直截了當的:

  1. 組成資料庫專案及其測試的檔案版本會標示,表示是屬於要部署的版本一部分。

  2. 取得標示的來源並產生建置指令碼。

  3. 視需要檢視和修改建置指令碼,將測試部署至開發用伺服器 (Staging Server)。每次部署之後,您可以將資料庫專案與開發用伺服器上的結構描述比較。

  4. 反覆測試建置指令碼並確定可以部署至實際執行環境之後,將修改過的建置指令碼部署到實際執行環境中。

  5. 如果您必須進行變更,但變更未反映在資料庫專案中,可以將這些更新從更新的實際執行伺服器匯入至資料庫專案中。

若要進一步了解 Database 版,可以針對每個功能範圍執行更深入的逐步解說。

請參閱

概念

Database Edition 的用語概觀

其他資源

重構資料庫

執行資料庫單元測試

比較資料庫結構描述