对于有数据库损坏问题的数据库,在使用REPAIR_ALLOW_DATA_LOSS选项修复后,经常遇到的问题是能否知道哪些数据被搞丢了?
要确定哪些数据有丢失,或发生改变,比较可行的方法是把旧数据库备份和修复后的新数据库做比较,看有哪些变化。
对于数据的比较,可以使用tablediff.exe这个数据库自带的工具,程序放在:
C:\Program Files\Microsoft SQL Server\120\COM
其中120这个目录根据版本的不同而不同:2012版本为110,2014版本为120
使用方法:
C:\Program Files\Microsoft SQL Server\120\COM\tablediff.exe
-sourceserver MyServer1
-sourcedatabase MyDatabase1
-sourcetable MyTable1
-destinationserver MyServer1
-destinationdatabase MyDatabase1
-destinationtable MyTable2
-et DiffsTable
-f diff.sql
其中-et指定要创建的结果表的名称(创建的表在目标数据库下面),-f生成TSQL差异脚本。
C:\Program Files\Microsoft SQL Server\120\COM>tablediff.exe -sourceserver localh
ost -SourceDatabase ekp_Recovered -SourceTable lbpm_process_definition -Destinat
ionServer localhost -DestinationDatabase ekp_Recovered1 -destinationtable lbpm_p
rocess_definition -et diffsTable -f D:\diff.sql

相应的语句如:





