共用方式為


逐步解說:比較兩個資料庫的資料

更新:2007 年 11 月

在此逐步解說中,您會比較兩個資料庫的資料、從差異處產生「資料操作語言」(Data Manipulation Language,DML) 指令碼,然後使用該指令碼將「來源」(Source) 中的資料填入「目標」(Target)。

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

  • 比較兩個資料庫的資料。在此程序中,您會尋找資料的差異、將差異顯示於方格中,然後產生資料操作語言 (DML) 指令碼來表示這些差異。

  • 更新目標資料庫。在此程序中,有兩個方法可以更新目標,使其與來源相符。

必要條件

在您完成該逐步解說之前,必須先安裝下列產品:

  • Microsoft SQL Server 2000 或 Microsoft SQL Server 2005

  • Visual Studio Team System Database 版

在您開始此逐步解說之前,請遵循逐步解說:比較兩個資料庫的結構描述中的程序步驟進行。當您完成該逐步解說之後,您將會有兩個資料庫:

  • 來源資料庫 Northwind 有其原始結構且包含其原始資料。

  • 目標資料庫 EmptyNW 是您在此逐步解說中所建立且用來比較「結構描述」(Schema) 的資料庫。然後,您只會將 Northwind 資料庫的結構描述套用至 EmptyNW。因此,EmptyNW 不包含任何資料。

比較兩個資料庫的資料

本章節包含兩個程序;在第一個程序中,您會比較資料庫並產生結果。在第二個程序中,您會檢查這些結果。

若要比較兩個資料庫的資料

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

    [新增資料比較] 精靈隨即出現。使用這個精靈可設定資料比較作業。若要設定比較作業,您必須指定每一個資料庫所在的伺服器、當您連接該資料庫時所要使用的驗證類型,以及您想要比較的每一個資料庫名稱。

    此外,[資料比較] 視窗也會在背景開啟,而 Visual Studio 會自動指定像是 DataCompare1 的名稱。

  2. 在 [新增資料比較] 精靈中,選取來源資料庫 Northwind。在 [來源資料庫] 清單中,它的名稱會出現在 Server.Northwind.dbo 表單中。

    如果 [來源資料庫] 清單是空的,請按一下 [新增連接]。在 [連接屬性] 對話方塊中,識別 Northwind 資料庫所在的伺服器以及連接到資料庫時所要使用的驗證類型。然後按一下 [確定] 關閉 [連接屬性] 對話方塊,回到 [新增資料比較] 精靈。

  3. 選取目標資料庫 EmptyNW。在 [目標資料庫] 清單中,它的名稱會出現在 Server.EmptyNW.dbo 表單中。

    如果 [目標資料庫] 清單是空的,請按一下 [新增連接]。在 [連接屬性] 對話方塊中,識別 EmptyNW 資料庫所在的伺服器以及連接到資料庫時所要使用的驗證類型。然後按一下 [確定] 關閉 [連接屬性] 對話方塊,回到 [新增資料比較] 精靈。

  4. 如果您想要限制比較結果中會出現哪些記錄,您可以指定 [進階資料比較選項]。在此逐步解說中,請接受預設值來查看所有記錄。

  5. 按一下 [下一步]。

    您可以在 [新增資料比較] 精靈的第二個頁面上,定義一份要比較的資料表和檢視表。此資料庫的所有資料表都會列在 [資料表] 節點底下。您可以展開個別資料表,以查看其所包含的資料行。預設會選取所有的資料表和資料行,這表示,將會比較所有的資料表和資料行。

    注意事項:

    如果您想要自訂所要比較的資料表和檢視表,可以按一下 [完成],而非 [下一步]。

  6. 若要排除特定的資料表或資料行,請清除它的核取方塊。若要包含特定的資料表或資料行,請選取它的核取方塊。

  7. 按一下 [完成],開始比較作業。

    比較隨即開始。

    注意事項:

    您可以按一下 [資料比較] 工具列上的 [停止],停止正在進行的資料比較作業。

    當比較完成時,[資料比較] 視窗中的資料表會顯示兩個資料庫之間的資料差異。如需如何檢視這些結果的詳細資訊,請參閱下列程序。

    您現在可以選擇更新目標中的資料,使其符合來源中的資料。如需詳細資訊,請參閱更新目標資料庫。

若要檢視資料比較結果

  1. 按一下 [dbo].[Orders] 資料列。

    [記錄檢視] 窗格中的索引標籤名稱會變更,以包含每一個類型的記錄數目:[不同的記錄 (0)]、[僅限於來源 (830)]、[僅限於目標 (0)] 和 [相同的記錄 (0)]。

  2. 按一下 [僅限於來源 (830)] 索引標籤。

    在 [僅限於來源 (830)] 索引標籤上,每一個資料列和每一個資料行都會對應到 [dbo].[Orders] 資料表中的資料列或資料行。

    注意事項:

    您可以使用這些索引標籤來控制傳播給目標的資料。如需詳細資訊,請參閱寫入更新至目標資料庫。

更新目標

您可以直接從 [資料比較] 視窗或是使用 Transact SQL (T-SQL) 編輯器,更新目標中的資料。本章節將描述這兩種選擇。

當您比較資料之後,差異處會出現在 [資料比較] 視窗的方格內。[物件] 資料行中的每一個資料表或檢視表都會有一個核取方塊,指示該物件是否會包含在更新作業中。這些資料行會顯示資料比較作業所指示之哪些類型的那些變更。在此例中,由於目標是空的,其中只有預設物件,所以只有 [僅限於來源] 資料行才會顯示所做的變更。

使用資料比較選項來寫入更新

若要使用出現在 [資料比較] 視窗中的更新動作來更新目標的資料,請使用下列程序:

  • 更新目標資料庫

使用 T-SQL 編輯器來寫入更新

若要匯出、檢查及變更更新指令碼,然後用它來變更目標,請使用下列程序:

  • 檢查並執行同步指令碼

更新目標資料庫

若要更新目標

  1. 在 [資料比較] 視窗中,按一下 [dbo].[Products]。

  2. 在詳細資料窗格中,按一下 [僅限於目標]。

    前兩個資料列會命名為 Chai 和 Chang。

    在詳細資料窗格的狀態列上,狀態列會陳述來源中所遺漏的記錄數目以及將會在目標中刪除的記錄數目。這兩個數字會相符。

  3. 請清除 Chai 資料列中的核取方塊。

    在詳細資料窗格的狀態列上,要刪除的記錄數目已經減少一筆記錄,它不再符合來源中所遺漏的記錄數目。

  4. 按一下 [資料比較] 視窗中的 [寫入更新]。

    即會實作 [資料比較] 視窗中所列的更新動作。這項同步處理會變更目標,使其與來源相符。

    注意事項:

    在更新目標時,您可以按一下 [停止寫入目標] 來取消作業。

檢查並執行同步指令碼

若要檢查同步指令碼

  1. 在 [資料比較] 視窗中,按一下 [匯出至編輯器]。

    T-SQL 編輯器會在連接模式中開啟,並顯示此 T-SQL 指令碼。這個視窗的名稱會類似於 Server.Northwind - DataUpdate_EmptyNW_1.sql。由於您在此視窗中具有寫入權限,因此可以變更此指令碼。如果您進行了變更,請在完成時按一下 [儲存]。

  2. 若要同步處理兩個資料庫的資料,請按一下 [執行 SQL] 或按 F5 鍵,執行這個指令碼。

    注意事項:

    當此指令碼正在執行時,您可以按一下 [取消查詢執行] 或按 Alt + Break,取消作業。

請參閱

工作

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

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

概念

Database Edition 的用語概觀

其他資源

比較資料庫結構描述