給定兩個已知具有相同模式的MS SQL數據庫,應該如何判斷它們是否包含相同的數據副本?如何驗證兩個SQL Server數據庫是否包含相同的數據?
我正在使用MS SQL Server 2008 Express,並使用ADO.NET API在.Net框架的C#和v2.0中進行編碼。這兩個數據庫實例都在同一個SQL服務器上。背景:我編寫的軟件可以將數據從一個數據庫導出到一組文件中,並將這些文件中的數據重新導入到數據庫的另一個副本中;我想測試在往返期間是否丟失了任何數據(更具體地說,是否在最初導出期間丟失或遺留任何數據)。
一個粗略的方法,我想是從每個數據庫中的每個表到SELECT *
,然後使用客戶端代碼比較選定的記錄集。有沒有另外一種方式,這將需要更少的客戶端代碼?
我發現了關於備份和恢復數據庫以及關於選擇和插入數據的文檔,但沒有注意到有關如何驗證/證明往返已經完全成功的文檔,即如何驗證兩個數據庫中的表的兩個副本是否包含相同的數據。
謝謝;我現在看到還有一個CHECKSUM_AGG函數可用於對錶中的每一行進行校驗和。 http://dbwhisperer.blogspot.com/2009/02/checksumagg-very-nifty-function.html建議將CHECKSUM與CHECKSUM_AGG結合起來用於QA應用程序。 – ChrisW 2009-05-20 01:46:46