2017-04-07 129 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

相关问题