将一个数据库的表与另一个数据库进行比较

时间:2011-04-11 15:04:58

标签: sql-server database

我有两个不同的数据库共享一些相同的表,并且有几个表不同。有没有办法可以获得数据库中表名之间差异的输出?

我正在使用MS SQL Server,并且这两个表都在同一个数据库服务器上。

3 个答案:

答案 0 :(得分:2)

您可以使用DBComparer之类的数据库比较工具  它完全免费,对我很有用。

答案 1 :(得分:2)

您只是想知道表名的区别?您可以外部加入sys.tables

;WITH A
     AS (SELECT *
         FROM   msdb.sys.tables
         WHERE  type = 'U'),
     B
     AS (SELECT *
         FROM   master.sys.tables
         WHERE  type = 'U')
SELECT COALESCE(A.name, B.name) AS Name,
       CASE
         WHEN A.name IS NULL THEN 'A'
         ELSE 'B'
       END                      AS DB
FROM   A
       FULL OUTER JOIN B
         ON A.name = B.name
WHERE  ( B.name IS NULL
          OR A.name IS NULL )
ORDER  BY DB,
          Name  

答案 2 :(得分:0)

我不知道您对使用第三方数据库实用程序的感受,但Toad for SQL Server(由dell制作)非常适合并排比较。

http://software.dell.com/landing/218/?gclid=CjwKEAjwyqOwBRDZuIO4p5SV8w0SJAAQoUSwC6B8BfgAQLML_8o3j9Bw1sUL01EljAjF9eXlZrY-nxoCYsjw_wcB