MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

上一篇“導出記錄數量對比-軟件測試方法(一)”,主要介紹數據導出結果記錄數量和原始正常好庫的記錄數量精確對比,測試軟件導出少數據的相關bug。
本文測試方法旨在更精確比對錶記錄內部數據差異,記錄數量的對比只是恢復準確率的必要條件,而記錄內部的字段數據內容是否一致,纔是比較的終極目標。

一、 測試目的:在很多情況下,數據導出是以記錄數量來衡量是否齊全。在某些情況下,數據記錄數量導出是一致的,但,記錄內部數據卻出現差異,比如某些數字字段,一旦出現差異,其結果將帶來不準確。本測試大綱目的是比對錶中記錄數據是否有差異,一旦出現差異,想辦法修改軟件,達到更準確的恢復效果。
二、測試工具:tablediff.exe,這個工具就用於表內部數據比較,是MS SQL Server自帶的一個工具。各位可以自行搜索自己機器上的這個文件所在的路徑。
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

三、構建數據表比較SQL語句:

use UFDATA_006_2015_好酷

SELECT 'tablediff.exe -sourceserver 127.0.0.1\SQL2008R2 -sourceuser sa -sourcepassword dst -sourcedatabase UFDATA_006_2015_好酷 -sourceschema dbo -sourcetable '+object_name (id)
+' -destinationserver 127.0.0.1\SQL2008R2 -destinationuser sa -destinationpassword dst -destinationdatabase UFDATA_006_2015_好酷_out -destinationschema dbo -destinationtable '
+object_name (id)+' -et Difference -f c:\data\'+object_name (id)+'.sql' as SQL
from sysObjects where type ='U'


解析:-sourceserver 127.0.0.1\SQL2008R2 原始數據庫實例
sourceuser sa -sourcepassword dst -sourcedatabase UFDATA_006_2015_好酷
sa是原始數據庫用戶,dst是sa用戶的密碼,各位根據自己的設置更改,UFDATA_002_2017_原始好庫是原始數據庫。
-destinationserver 127.0.0.1\SQL2008R2 -destinationuser sa -destinationpassword dst -destinationdatabase UFDATA_002_2017_好庫導出
127.0.0.1\SQL2008R2 是目標數據庫實例,可以跨越實例比較,sa dst UFDATA_006_2015_好酷_out 都是目標數據庫用戶名、密碼、庫名稱

f c:\data\'+object_name (id)+'.sql' 這個是把比較結果,寫道c:\data目錄下,用表的名字命名。
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

四、語句執行方法:
找到tablediff.exe文件路徑
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

進入cmd模式下,在路徑上輸入cmd,回車
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法
把得到的SQL語句複製,貼到cmd窗口上。
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

建好c:\data 目錄,修改好權限
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

設置sa登錄,及密碼
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

把得到的SQL語句複製,貼到cmd窗口上:
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

自動運行:
MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

五、等待運行結果

MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

本文版權歸魔幻數據所有

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章