共用方式為


逐步解說:比較兩個資料庫的結構描述

更新:2007 年 11 月

在本逐步解說中,您會使用 Visual Studio Team System Database 版比較兩個資料庫的「結構描述」(Schema)。結構描述比較動作也會從差異產生「資料定義語言」(Data Definition Language,DDL) 指令碼。請使用這個檔案來同步處理「目標」(Target) 與「來源」(Source) 的結構描述。如需詳細資訊,請參閱比較資料庫結構描述

在這個逐步解說中,您將遵循下列程序:

  • 建立空白的資料庫。來源是 Northwind 資料庫,而您將建立空白的資料庫做為目標。

  • 比較兩個資料庫的結構描述。藉由比較結構描述,您會發現兩個資料庫的結構差異、在資料表中顯示差異,並產生表示差異的資料定義語言 (DDL) 指令碼。

  • 檢查並執行同步指令碼。您會檢查資料定義語言 (DDL) 指令碼,並能在執行前編輯指令碼。

  • 更新目標資料庫。您會執行資料定義語言 (DDL) 指令碼來變更目標的結構描述。

必要條件

您必須已安裝下列產品:

  • Microsoft SQL Server 2000 或 Microsoft SQL Server 2005

  • Database 版 

您必須有兩個資料庫可供比較。首先會用 Northwind 資料庫做為來源。接著會建立空白資料庫做為目標。這會在下列程序中說明。

建立空白資料庫

請依照下列步驟建立空白資料庫。

若要建立空白資料庫

  1. 在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。

    [新增專案] 對話方塊隨即出現。

  2. 如果要建立 SQL Server 2000 資料庫,請按一下 [SQL Server 2000 精靈]。如果要建立 SQL Server 2005 資料庫,請按一下 [SQL Server 2005 精靈]。

  3. 在 [名稱] 中輸入 EmptyNW。

  4. 其他欄位接受預設值,然後按一下 [確定]。

    新增資料庫專案精靈隨即出現。

  5. 按一下 [設定建置/部署]。

  6. 在 [目標連接] 中,按一下 [瀏覽] 按鈕並指定連接,以連接到要建立空白資料庫的資料庫伺服器。

  7. 按一下 [完成]。

    名為 EmptyNW 的資料庫專案隨即建立並出現在 [方案總管] 中。

  8. 按一下 [方案總管] 中的 EmptyNW 資料庫專案。

  9. 按一下 [建置] 功能表上的 [部署ProjectName]。

    資料庫專案隨即建置並部署到指定的伺服器。

比較兩個資料庫的結構描述

若要比較兩個資料庫的結構描述

  1. 開啟 Database 版。

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

    [結構描述比較] 對話方塊隨即出現。使用這個對話方塊指定來源和目標。在這個對話方塊中,指定來源和目標所在的伺服器、每個資料庫的名稱,以及連接到每個資料庫使用的驗證類型。

    此外,[結構描述比較] 視窗也會在背景開啟,Database 版會自動指定像是 SchemaCompare1 的名稱。

  3. 在 [來源資料庫] 底下的 [伺服器名稱] 中,輸入 Northwind 資料庫所在伺服器的名稱。

  4. 在 [選取或輸入資料庫名稱] 中輸入 Northwind。

  5. 在 [目標資料庫名稱] 底下,輸入 EmptyNW 資料庫所在伺服器的名稱。這個名稱應是在來源所輸入的相同伺服器。

  6. 在 [選取或輸入資料庫名稱] 底下,輸入 EmptyNW。

  7. 按一下 [完成]。

    結構描述比較便開始。

    注意事項:

    您可以停止正在進行的結構描述比較作業。請開啟 [資料] 功能表,指向 [結構描述比較],然後按一下 [停止結構描述比較]。

    注意事項:

    您可以設定選項來決定要將何者將視為差異,以及變更建立更新指令碼的方式。如需詳細資訊,請參閱 HOW TO:設定用來比較資料庫結構描述的選項

    當比較完成時,[結構描述比較] 視窗中的資料表會顯示兩個資料庫的結構差異。資料表中的每個資料列都代表各資料庫中的每一個「資料庫物件」(Database Object)。資料庫物件會依類型來組織:資料表、檢視、預存程序、角色等。

更新目標資料庫

更新目標的結構描述時可有兩種選擇。您可以直接從 [結構描述比較] 視窗更新結構描述,或使用 T-SQL 編輯器。本節將說明這兩種選擇。

在執行結構描述比較之後,[結構描述比較] 視窗中的資料表會顯示結構差異。針對 [Northwind (來源 DB)] 資料行中的每個物件,資料表會在 [更新動作] 資料行中顯示動作,這是在兩個資料庫中同步處理該物件所需的動作。在此例中,由於目標是空的,其中只有預設物件,[狀態] 資料行大多會顯示 [新增] 狀態,而 [更新動作] 資料行則大多會顯示 [建立] 動作。

寫入更新至目標

您可以使用 [結構描述比較] 視窗所列的更新動作,更新目標的結構描述。若要執行這項作業,請遵循寫入更新至目標資料庫中的步驟。

檢視指令碼,然後寫入更新至目標

您可以匯出更新指令碼、檢查並視需要變更指令碼,然後用來同步處理目標資料庫。若要執行這些作業,請遵循檢查並執行同步指令碼中的步驟。

寫入更新至目標資料庫

若要寫入更新至目標資料庫

  1. (選擇但為建議項) 備份目標資料庫。

    由於某些結構描述變更無法交易處理,因此如果開始而又取消更新作業,可能會遺失資料。例如,可能已經卸除目標資料庫中的資料表,做為重新建立的準備。如果這時取消更新,就可能會遺失該資料表。

  2. 按一下 [結構描述比較] 工具列上的 [寫入更新]。

    [結構描述比較] 視窗中所列的更新動作即會執行。同步處理會變更目標的結構描述,使其符合來源的結構描述。

    注意事項:

    當更新動作執行時,您可以取消作業。請按一下 [資料] 功能表,指向 [結構描述比較],然後按一下 [停止寫入目標]。

    注意事項:

    比較並不會自動重新整理。如果要再次執行比較,驗證是否套用了選取的更新,您必須按一下 [結構描述比較] 工具列上的 [重新整理] 按鈕。

檢查並執行同步指令碼

若要檢查同步指令碼

  1. 指向 [資料] 功能表上的 [結構描述比較],然後指向 [匯出至],然後按一下 [編輯器]。您也可以按一下 [結構描述比較] 工具列上的 [匯出至編輯器]。

    T-SQL 編輯器會在連接模式中開啟,並顯示 T-SQL 同步指令碼。這個視窗的名稱會類似於 Server.Northwind - SchemaUpdate_EmptyNW_1.sql,其中將顯示 T-SQL 指令碼。指令碼位於 My Documents/Visual Studio 2005/My Projects 資料夾中的檔案。由於您可以寫入和讀取這個視窗,因此可以變更指令碼。如果變更了指令碼,請開啟 [檔案] 功能表,然後按一下 [儲存]。

  2. 若要同步處理兩個資料庫的結構描述,請按一下 [結構描述比較] 工具列上的 [執行 SQL] 或按 F5 鍵執行這個指令碼。

    注意事項:

    比較並不會自動重新整理。如果要再次執行比較,驗證是否套用了選取的更新,您必須按一下 [結構描述比較] 工具列上的 [重新整理] 按鈕。

後續步驟

現在就可以比較兩個資料庫中的資料。如需詳細資訊,請參閱 HOW TO:比較兩個資料的結構描述

請參閱

工作

HOW TO:比較兩個資料的結構描述

HOW TO:比較兩個資料庫的結構描述

概念

Database Edition 的用語概觀

其他資源

比較資料庫資料