# 如何比對兩個表格中的資料是否相等

微軟在SQL Server 2005 有出一個 [tablediff 公用程式](http://technet.microsoft.com/zh-tw/library/ms162843.aspx "tablediff 公用程式")，可以用來比較兩份資料表的資料是否一致，如果不一致的時候會幫你產生更新的 SQL 檔，幫你再目的地的表格執行INSERT,UPDATE或DELETE以進行同步動作，因為這是一支DOS介面的程式，您可以在命令提示字元之下，或是在批次檔中寫好相關的指令、參數，然後每天定時執行即可。

這工具有個缺點，就是在進行比對的過程中預設來說不會對 **text、ntext、image、varchar(max)、nvarchar(max) 和 varbinary(max)** 進行比對與更新，這點還蠻討厭的，因為應該有蠻多表格中可能包含這些欄位的。但你至少還可以用 -b 參數針對這類大型物件資料類型的欄位進行比對兩個表格之間是否不一樣的資料，只是不能更新過去而已，但每個欄位最大只能比對前8,000個字元而已。

預設這支程式放在 C:\\Program Files\\Microsoft SQL Server\\90\\COM\\ 目錄下，以下是範例的執行語法：

> C:\\Program Files\\Microsoft SQL Server\\90\\COM> tablediff.exe -sourceserver COMPUTERNAME1 -sourcedatabase MyDBName -sourcetable MyTable -sourceuser sa -sourcepassword 17940ufddjf9u32jrkf -sourcelocked -destinationserver COMPUTERNAME2 -destinationdatabase MyDBName -destinationtable MyTable -destinationuser sa -destinationpassword 4738er703urdf14j -f test.sql

在MSDN上的說明已經很詳細了，各位可以自行上去看詳細的使用方式。

**相關連結**

-   tablediff 公用程式  
    [http://technet.microsoft.com/zh-tw/library/ms162843.aspx](http://technet.microsoft.com/zh-tw/library/ms162843.aspx)
