我现在的SQL数据库中有两个数据库.sqldata1和sqldata2.两个数据库是完全一样的.其中正式应用的是sqldata1这个数据库.sqldata2作为备份数据库.现在sqldata1中的表A,B,C三个表不断有新记录增加.我想在一段时间后运行一段语句,把sqldata1中A,B,C三个表中新加的记录,复制到sqldata2中的A,B,C表中.也就是说过一段时间要让这两个数据库中的表同步,一样.请问怎么能实现呢?

解决方案 »

  1.   


    直接插入在库2中不存在但是在库1中存在的记录,insert into sqldata2.dbo.A 
    select * from sqldata1.dbo.A as a 
    where checksum(*) not in (select checksum(*) from sqldata2.dbo.A)或者
    先清空库2表的记录。然后插入库1中某表所有的记录到库2相应的表truncate table sqldata2.dbo.ainsert into sqldata2.dbo.a 
    select * from sqldata1.dbo.a
    呵呵!肯定还有很多其他的方式的。
      

  2.   

    多种方法
    其中一种方法
    insert into sqldata2.dbo.a
    select * from sqldata1.dbo.a
    另外一种方法
    写个存储过程执行计划里边。
      

  3.   

    谢谢.这个方法我在提出问题之前就试过了.我补充一下.只能用直接插入这个方法,删除的方法我这里不可取.但应用直接插入这个方法的时候,就象insert into sqldata2.dbo.A 
    select * from sqldata1.dbo.A as a 
    where checksum(*) not in (select checksum(*) from sqldata2.dbo.A)
    这个语句.返回的提示是违反了primary key约束 不能在对象中插入重复键.
      

  4.   

    非常感谢.问题解决了,我发现用checksum是不对了.对应行数不一定是对应的记录数,当新数据写入后.所以这里在不能用checksum把checksum换民两个表中相匹配的字段就可以了.非常感谢.