假设有两张表在不同的数据库database1和database2,都有表a,字段格式一样,database 2的数据比database1 里面的数据多一点,先把数据库1里面表a 的数据删除,在把数据库2里面表a的数据复制到里面就OK啦,现在想在不删除数据库1里表a的数据,把数据库2表a里在数据库1里面没有的数据添加进去~~~  

解决方案 »

  1.   

    insert into database1..a
    select * from database1..a
    except
    select * from database2..a
      

  2.   

    --如果在同服务器
    insert database1.dbo.a(collist)
    select collist
    from database2.dbo.a t
    where not exists(select 1
                     from database1.dbo.a 
                     where col=t.col....)
      

  3.   

    两张表完全一样就这样做,不过要事先建立连接数据库。insert into database1..a
    select * from database1..a
    except
    select * from database2..a
      

  4.   

    楼上用except的方法我在别的表格测试成功,但是在我需要的表格里面,测试出现了一个主键重复的错误~~~
      

  5.   

    insert database1.dbo.a(collist)
    select collist
    from database2.dbo.a t
    where not exists(select 1
                     from database1.dbo.a 
                     where pkcol=t.pkcol)
      

  6.   

    insert database1.dbo.a
    select *
    from database2.dbo.a t
    where not exists(select 1
                     from database1.dbo.a 
                     where checksum(*)=checksum(t.*))不知道这样行否
      

  7.   


    insert database1.dbo.a (collist)
    select collist from database2.dbo.a t where not exists(select 1 from database1.dbo.a where pkcol=t.pkcol)