有数据库a,b,都有表stuff,结构完全相同,现在想比较a,b两个表的数据是否完全相同,该怎么做?

解决方案 »

  1.   

    两个DB在同一台服务器,直接用DB名,否则需要建立linkserver假设在同一台DB----2005及以上可用
    SELECT * FROM DB_A.DBO.STUFF
    EXCEPT  ---取差异
    SELECT * FROM DB_B.DBO.STUFF
    UNION ALL
    SELECT * FROM DB_B.DBO.STUFF
    EXCEPT  ---取差异
    SELECT * FROM DB_A.DBO.STUFF----如果没有记录,则相同。
      

  2.   

    按照主键列排序, bcp到文本文件, 用工具比较2个文件的异同。 或者
    select ~~~~~~~ not in 
      

  3.   

    关系数据库中表的结构设计时就要求有“主关键字”,两表进行外部的"JOIN"就能找出差别的记录,不知道表的主关键字,#1楼已进行解答。
      

  4.   

    SELECT * FROM stuff WHERE checksum(*) NOT IN 
    (SELECT CHECKSUM(*) FROM DB2..stuff)
      

  5.   


    select * from stuff minus select * from stuff  --no rows 则相同 否则不同
      

  6.   

    select * from a.stuff minus select * from b.stuff 
      

  7.   

    能过查找系统表sys.object对比,数据量,空间等
      

  8.   


    不好意思,是我没问清楚:SQL2000,如何找出2个结构一模一样的数据库表的数据的不同点,具体说,查询结果就是不同的数据,最好能区别数据在哪个表有、哪个表没有