有两个结构完全一样的数据库db1,db2,从db1导入到db2,要实现数据的一致化,原则是:
1、要把db1中有db2中没有的插入到db2相应的表中;
2、如果db1中的表t1的field1的数值比db2中的表t1的field1的数值大,取db1的field1的值,更新到db2中

解决方案 »

  1.   

    首先定义一个主键,不要自增,比如num字段insert into db2中表 select * from db1中表 where db1中表.num not in (select num from db2中表)//把db1中有db2中没有的插入到db2相应的表中update db2中表 inner join db1中表 on db2中表.num=db1中表.num set db2中表.field1=db1中表.field1 where db1中表.field1>db2中表.field1你可能是跨库查询那样的话,要给非数据集所连接的数据库(比如db1), 加上路径 比如 db1 in 'db1的路径'
      

  2.   

    to bdmh
    我记得ACCESS中也有那么一个类似于MS SQL中的系统表可以包括该数据库的所有表、查询信息,不知道怎么查看这个表,怎么操作呢?
      

  3.   

    借用前端工作DELPHI OR VB对比操作喽,若ACCESS里没有跨DB查询
      

  4.   

    to bdmh:update db2中表 inner join db1中表 on db2中表.num=db1中表.num set db2中表.field1=db1中表.field1 where db1中表.field1>db2中表.field1 你可能是跨库查询那样的话,要给非数据集所连接的数据库(比如db1), 加上路径 比如 db1 in 'db1的路径'
    这个路径怎么加?
      

  5.   

    update db2中表 as A inner join db1中表 in '数据库路径' as B on B.num=A.num set B.field1=A.field1 where A.field1>B.field1 
      

  6.   

    要灵活的话还是在程序里面一一对比.insert语句虽然可以做到,但不灵活,两个数据库中表的插入操作也不方便,即使是同数据库中不同表的插入,因为不能了解操作的进度,在进行大型数据的插入时,也很郁闷的.