比較複寫資料表的差異 (複寫程式設計)

適用於:SQL ServerAzure SQL 受控執行個體

文章驗證檢查 Publisher 與 Subscriber 所發布的表格文章資料是否相同。 如果並非如此,可能表示未收斂。 如需更多資訊,請參閱驗證複寫資料。 然而,驗證只會回傳通過或失敗的資訊,並未提供來源與目的資料表之間差異的細節。 tablediff 命令提示字元公用程式會傳回兩個資料表之間詳細的差異資訊,甚至可產生 Transact-SQL 指令碼,使訂閱與發行者端的資料達到一致。

注意

只有 SQL Server 伺服器支援 tablediff 公用程式。

若要使用 tablediff 比較複寫資料表之間的差異

  1. 在複寫拓樸中的任何伺服器上,從命令提示字元執行 tablediff Utility。 指定下列參數:

    • -sourceserver - 已知其上資料正確的伺服器名稱,通常是「發行者」端。

    • -sourcedatabase - 包含正確資料之資料庫的名稱。

    • -sourcetable - 你比較的文章來源表名稱。

    • (選擇性) -sourceschema - 來源資料表的結構描述擁有者 (若非預設的結構描述)。

    • (選用)使用 SQL Server 驗證連線到發行者時,請使用 -sourceuser-sourcepassword

      重要

      盡可能使用 Windows 驗證。 如果必須使用「SQL Server 驗證」,請提示使用者在執行階段輸入安全性認證。 如果您將認證儲存在指令碼檔案中,必須保護該檔案免於未經授權的存取。

    • -destinationserver - 進行資料比較的伺服器名稱,通常是「訂閱者」。

    • -DestinationDatabase - 被比較的資料庫名稱。

    • -destinationtable - 所比較資料表的名稱。

    • (選擇性) -destinationschema - 目的地資料表的結構描述擁有者 (若非預設的結構描述)。

    • (選擇性)當使用 SQL Server 驗證連線至訂閱者時,可指定 -destinationuser-destinationpassword

      重要

      盡可能使用 Windows 驗證。 如果必須使用「SQL Server 驗證」,請提示使用者在執行階段輸入安全性認證。 如果您將認證儲存在指令碼檔案中,必須保護該檔案免於未經授權的存取。

    • (選擇性) 使用 -c 可執行資料行層級比較。

    • (選擇性) 使用 -q 可執行僅限列數和結構描述的快速比較。

    • (選擇性) 針對 -o 指定檔案名稱和路徑,以將結果輸出至檔案。

    • (選擇性) 指定訂閱資料庫中的資料表,以在其中插入 -et的結果。 如果該資料表已存在,請指定 -dt 先將該資料表卸除。

    • (選擇性) 使用 -f 可產生 Transact-SQL 檔案,以修正「訂閱者」端的資料,使其符合「發行者」端的資料。 使用 -df 可指定每個檔案中的 Transact-SQL 陳述式數目。

    • (選擇性) 使用 -rc-ri 可指定重試作業的次數和重試間隔。

    • (選擇性) 使用 -strict 可在來源和目的地資料表之間強制執行嚴格的結構描述比較。