2010-08-25 53 views
2

我正在研究SQL Server 2005.我已經完成了備份並恢復了數據庫。我只是想知道是否有任何方法可以檢查這兩個數據庫之間的數據是否不同。或者我可以運行或檢查的任何腳本[可以按表格]查看是否添加或修改了任何新行。兩個數據庫之間的數據差異

EDITED

例如 - 我要檢查從數據庫1 Table_User到數據庫2 Table_User的數據的差。

感謝

+0

數據庫在表格和行數方面有多大? – spbfox 2010-08-25 06:10:57

+0

只有2-3個表格很大,大約有一萬行 – Zerotoinfinity 2010-08-25 06:27:48

回答

0

您可以使用內置的命令行工具TableDiff.exe:

http://msdn.microsoft.com/en-us/library/ms162843(SQL.90).aspx

它與列級比較一起執行按行比較一行。下面是走過了如何使用它的一篇文章:

http://www.databasejournal.com/features/mssql/article.php/3594926/SQL-Server-2005-TableDiff-Utility.htm

而另一位(一個鏈接到一個GUI,您可以下載):

http://weblogs.sqlteam.com/mladenp/archive/2007/03/03/60125.aspx

這將是一個表以表爲基礎 - 但它是免費的,並且已安裝,因爲您已安裝SQL Server 2005。希望這可以幫助!

+0

我是否需要打開Microsoft .NET Framework v2.0 SDK命令提示符? 或 運行> cmd – Zerotoinfinity 2010-08-25 06:22:00

+1

此處應該安裝:'C:\ Program Files \ Microsoft SQL Server \ 90 \ COM \ TableDiff.exe'(根據安裝SQL Server的方式可能有所不同)。我相信,只是一個基本的運行> cmd應該這樣做。它是安裝的客戶端工具的一部分。 – 2010-08-25 06:35:01

0

可以使用SQL比較和SQL數據比較。(red-gate.com) 或者您可以使用SQL三角洲。(sqldelta.com)

0

我想你要跟蹤哪些恢復了更改數據庫與恢復之前的數據庫進行比較。如果是這樣,我希望這可能會有所幫助。

ALTER DATABASE yourdatabasename SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON); 
GO 
USE yourdatabasename; 
GO 
ALTER TABLE Person.Person ENABLE CHANGE_TRACKING 
WITH (TRACK_COLUMNS_UPDATED = ON); 
GO 
+0

這將是什麼輸出?我的意思是,我擔心它不會更新任何一個數據庫..它會更新我的數據庫? – Zerotoinfinity 2010-08-25 06:34:55

+0

不,它不會。它只是跟蹤什麼兩個數據庫 – daydream 2010-08-25 06:40:48

+0

我已經使用這個 ALTER DATABASE StudentOld SET CHANGE_TRACKING =之間被改變了 (CHANGE_RETENTION = 20天,AUTO_CLEANUP = ON); GO USE studentNew;使用 (TRACK_COLUMNS_UPDATED = ON)啓用CHANGE_TRACKING; GO 我得到低於錯誤 發生致命的腳本錯誤。 解析GO時遇到語法錯誤。 – Zerotoinfinity 2010-08-25 06:58:04

相關問題