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

您可以比較「來源」 資料庫與「目標」 資料庫的資料,以及指定應該比較的資料表。 您可以檢閱資料來決定要同步哪些變更。 然後,您可以更新目標來同步資料庫,也可以將更新指令碼匯出至 Transact-SQL 編輯器或檔案。

您也許會同步資料庫,以使用生產資料複本來更新暫存伺服器。 您也可以使用其他資料庫的資料填入資料表,同步處理一個或多個資料表。 此外,在執行測試前後,您也可以比較資料,作為其他形式的驗證。

您可以比較兩個資料庫的資料,但是無法指定用於比較的資料庫專案檔案或 .dacpac,原因是其不包含資料。

本節資訊涵蓋下列層面:

需求

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

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

    資料表、檢視表和擁有者名稱會區分大小寫。

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

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

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

每個物件都具有決定與其對應之其他物件的索引鍵或索引。 每個資料表或檢視可以有多個主索引鍵、唯一索引或唯一條件約束。 因此,您可能需要指定要使用的索引鍵、索引或條件約束。

一般工作

在本節中,您可以找到支援此狀況的一般工作描述。

設定選項以控制比較資料的方式: 當您比較資料時,可以安全地忽略識別欄位,停用觸發和停用外部索引鍵。 您也可以從更新指令碼卸除主索引鍵、索引和唯一的條件約束。

比較資料表中的資料並選擇性地更新目標以符合來源: 在指定要比較的來源及目標資料庫並進行比較之後,請在 [資料比較] 視窗中檢視結果。 您不只要檢視詳細差異,也要檢視用於同步資料的更新指令碼。 在您找出兩個資料庫之間的差異後,請針對每個差異指定動作。 然後,請更新目標或將更新指令碼匯出至 Transact-SQL 編輯器或檔案。 您可以匯出此指令碼,以便您或其他人在套用變更之前可以檢閱它。

了解比較結果

下表描述 [資料比較] 視窗的五個資料行。

資料行 注意
Object 顯示資料表或檢視表的名稱,以及指示當您寫入更新或匯出更新指令碼時是否應該同步處理目標的核取方塊。 如果資料表或檢視不包含資料,核取方塊會無法使用。
不同的記錄 顯示目標中與來源的索引鍵相同但資料不同的記錄數目。 當您寫入更新或匯出更新指令碼時,括號內會包含標示要更新的記錄數目。
僅限於來源 顯示來源中目標所沒有的記錄數目。 當您寫入更新或匯出更新指令碼時,括號內會包含標示要新增的記錄數目。
僅限於目標 顯示目標中來源所沒有的記錄數目。 當您寫入更新或匯出更新指令碼時,括號內會包含標示要刪除的記錄數目。
相同的記錄 顯示目標中與來源的索引鍵和資料相同的記錄數目。 當您寫入更新或匯出更新指令碼時,這些記錄不會更新。

資料表和檢視表詳細資料

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

另請參閱

SQL Server Data Tools
操作說明:使用結構描述比較以比較不同的資料庫定義