1. 程式人生 > >MS SQL Server數據庫兩個庫之間相同數據表名內容批量對比方法

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

介紹 用戶 ms sql 圖片 bject 帶來 情況 sch source

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

一、 測試目的:在很多情況下,數據導出是以記錄數量來衡量是否齊全。在某些情況下,數據記錄數量導出是一致的,但,記錄內部數據卻出現差異,比如某些數字字段,一旦出現差異,其結果將帶來不準確。本測試大綱目的是比對表中記錄數據是否有差異,一旦出現差異,想辦法修改軟件,達到更準確的恢復效果。
二、測試工具:tablediff.exe,這個工具就用於表內部數據比較,是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目錄下,用表的名字命名。
技術分享圖片

四、語句執行方法:
找到tablediff.exe文件路徑
技術分享圖片

進入cmd模式下,在路徑上輸入cmd,回車
技術分享圖片

技術分享圖片
把得到的SQL語句復制,貼到cmd窗口上。
技術分享圖片

建好c:\data 目錄,修改好權限
技術分享圖片

設置sa登錄,及密碼
技術分享圖片

技術分享圖片

把得到的SQL語句復制,貼到cmd窗口上:
技術分享圖片

自動運行:
技術分享圖片

五、等待運行結果

技術分享圖片

本文版權歸魔幻數據所有

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