2017-04-07 132 views
2

我目前正在將數據從SQL 2008 R2遷移到SQL 2014服務器,並且希望檢查目標服務器中的所有數據值與源服務器遷移後的內容是否相同。但是,這兩臺服務器位於不同的網段。有什麼方法可以比較兩個不同的sql服務器之間的數據?兩個不同的SQL服務器之間的數據比較

+0

你想檢查記錄計數和所有的表對象的數據庫中的數據 – 2017-04-07 11:36:05

+3

的Visual Studio和SSDT具有數據比較工具https://docs.microsoft.com/en-us/sql/ssdt/download -sql-server-data-tools-ssdt –

回答

0

您可以爲每個表單獨編寫一個散列函數。然後只是比較這些值。一個簡單的實現這個功能對於MSSQL的

例子:

SELECT 
AVG(CAST(CAST(
      HASHBYTES('MD5', CONCAT(columnn1, column2, column3)) 
    AS BIGINT) AS FLOAT)) 
FROM simpleTable; 

與同爲MySQL的:

SELECT 
AVG(CONV(SUBSTR(MD5(CONCAT(column1, column2, column3)), 
      1, 16), 
     16, 10)) 
FROM simpleTable; 
+0

不知道mysql函數如何在這裏幫助。這顯然是用sql server標記的。這是在sql server中的無效代碼。 –

+0

@SeanLange,我重寫了SQL Server的查詢。嘗試一下。 – Palindromer

0

這取決於你所需要的兩個數據庫之間進行比較的話,但你應該沒有問題創建一個鏈接的服務器來得到你需要的東西...只要確保在完成使用時刪除鏈接的服務器,因爲它確實會造成安全問題。 http://learnsqlwithbru.com/2012/01/06/create-linked-server-to-connect-to-another-sql-server-part-i/

您也可以使用Service Broker,它更安全,但也涉及更多一點。 https://serverfault.com/questions/98084/can-i-setup-a-link-sql-server-connection-between-servers-on-different-networks

相關問題