两个不同的sql服务器之间的数据比较

时间:2017-04-07 11:27:49

标签: sql sql-server

我目前正在将数据从SQL 2008 R2迁移到SQL 2014服务器,并希望检查目标服务器中的所有数据值是否与迁移后的源服务器中的数据值相同。但是,这两台服务器位于不同的网段上。有什么方法可以比较两个不同的sql服务器之间的数据?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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