Sql-Server-2008

檢查 2 個表(在不同伺服器上)是否具有相同的確切數據

  • October 31, 2021

因此,託管我們的 SQL Server 的公司似乎在從生產伺服器複製到備份伺服器時遇到了一些問題……我相信一些表已經正確複製。每天(下班後)進行複制。

有沒有辦法可以比較 2 個相同的表,1 個來自備份,1 個來自生產伺服器,看看昨晚的複制是否有效?

我能找到的唯一方法是在兩台伺服器上執行以下查詢並查看結果是否匹配“可能”意味著 2 個表包含相同的資訊。

SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
       FROM   (

                   SELECT  * 
                   FROM    table_to_compare
              ) t1

使用上面的程式碼,似乎表確實複製成功,因為校驗和值是相同的,但我不確定這種方法有多可靠。

有誰知道更好的方法來檢查這個,或者這是否是一個好方法?

我在 Windows Server 2008 電腦上執行 SQL Server 2008。

謝謝。

我相信您正在尋找可以讓您做到這一點的工具tablediff - 比較兩個複製表的差異。您可能會發現這篇文章很有用,可以開始使用。

這是tablediff的 GUI

我發現這篇文章特別有趣: http: //networkprogramming.wordpress.com/2011/01/14/binary_checksum-vs-hashbytes-in-sql/

“如果你需要速度而不是準確性——使用 CHECKSUM,而不是 BINARY_CHECKSUM。

如果您需要準確性而不是速度 - 使用 HASHBYTES。”

引用自:https://dba.stackexchange.com/questions/22385