Share via


使用參考資料庫中的資料比較和同步處理一個或多個資料表中的資料

這個主題適用於:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

標題適用於 標題適用於 標題不適用於 標題不適用於

您可以使用 Visual Studio 比較「來源」(Source) 資料庫和「目標」(Target) 資料庫中的資料,並且指定應比較哪些資料表。 您可以檢閱資料,並且決定要同步處理的變更。 然後可以更新目標以同步處理資料庫,或是將更新指令碼匯出到 Transact-SQL 編輯器或檔案。

例如,您可以同步處理資料庫,以實際執行資料的複本更新執行伺服器。 您也可以同步處理一個或多個資料表,以另一個資料庫的參考資料填入這些資料表。 此外,您可以在執行測試之前和之後比較資料,做為另一種驗證的方式。

您可以比較兩個資料庫中的資料,但是無法指定資料庫專案 (.dbproj) 或 .dbschema 檔進行比較,因為這兩個檔案中未包含資料。

需求

當您比較資料表或檢視中的資料時,來源資料庫中的資料表或檢視必須與目標資料庫中的資料表或檢視共用數個屬性。 未符合下列準則的資料表和檢視不會進行比較,而且不會出現在 [新增資料比較] 精靈的第二個頁面:

  • 資料表必須有包含相容資料型別的相符資料行名稱。

    資料表、檢視表和擁有人的名稱都會區分大小寫。 如需結構描述的詳細資訊,請參閱比較和同步處理資料庫結構描述

  • 資料表必須有相同的主索引鍵、唯一索引或唯一的條件約束。

  • 檢視表必須有相同且唯一的叢集索引。

  • 只有在資料表與檢視表同名時,才可以比較這兩者。

每一個物件都有索引鍵或索引,用來判斷其他對應的物件。 不過,每一個資料表或檢視都可以有多個主索引鍵、唯一索引或唯一的條件約束。 因此,您可能希望指定要使用的索引鍵、索引或條件約束。

一般工作

下表列出支援此案例之一般工作的說明,以及詳細資訊的連結,這些資訊可幫助您成功完成這些工作。

一般工作

支援內容

獲得實務練習:您可以執行入門逐步解說,熟悉如何比較兩個資料庫中的資料。

設定選項控制比較資料的方式:當您比較資料時,可以安心忽略識別資料行、停用觸發程序,以及停用外部索引鍵。 您也可以從更新指令碼置放主索引鍵、索引和唯一的條件約束。

比較資料表中的資料和選擇性更新目標以符合來源:指定要比較的來源和目標資料庫並且執行比較之後,可以在 [資料比較] 視窗中檢視結果。 您不僅可以檢視差異的詳細資料,還可以檢視可用來同步處理資料的更新指令碼。 在您找出兩個資料庫之間的差異後,可以為每一項差異指定動作。 然後可以更新目標,或是將更新指令碼匯出到 Transact-SQL 編輯器或檔案。 您可能想要匯出指令碼,如此您或其他人就可以在套用變更之前先行檢閱。

疑難排解問題:您可以深入了解如何疑難排解比較和同步處理資料庫結構描述時可能遇到的常見問題。

了解比較結果

下表說明 [資料比較] 視窗中的五個資料行。

資料行

備註

物件

顯示資料表或檢視的名稱,以及一個核取方塊,指出是否應在您寫入更新或匯出更新指令碼時同步處理目標。 此核取方塊對於未包含資料的資料表或檢視並無作用。

不同的記錄

顯示與來源擁有相同索引鍵但不同資料之目標中的記錄數目。 引號包圍的是標記為要在您寫入更新或匯出更新指令碼時更新的記錄數。

僅限於來源

顯示在來源中發生但未在目標中發生的記錄數。 引號包圍的是標記為要在寫入更新或匯出更新指令碼時加入的記錄數。

僅限於目標

顯示在目標中發生但未在來源中發生的記錄數。 引號包圍的是標記為要在寫入更新或匯出更新指令碼時刪除的記錄數。

相同的記錄

顯示與來源擁有相同索引鍵及相同資料之目標中的記錄數。 這些記錄不會在您寫入更新或匯出更新指令碼時更新。

資料表和檢視詳細資料

當您在 [資料比較] 視窗中按一下任何資料表或檢視時,詳細資料窗格戶顯示資料表或檢視包含的所有資料列。 詳細資料窗格中的每一個索引標籤都會顯示不同的分類 ([不同的記錄]、[僅限於來源]、[僅限於目標] 和 [相同的記錄])。 您可以針對每一個資料列選取或清除對應的核取方塊,指出是否要在更新指令碼中包含該變更。

相關案例