1、复制表不用DataSet吧,效率不高,直接用SQL语句
“Insert Into 表名(列名) Select (列名) From 表名”
2、你的表中有没有ID啊?有的话记录最后一条记录的ID,然后每次都判断一下是否有ID大于这条ID,有的话追加就行
3、这个你看看有关数据库的书吧,我帮不了你。

解决方案 »

  1.   

    同意  gweidian(向高手学习)所说的
      

  2.   

    问题一:Insert Into 表名(列名) Select (列名) From 表名
    问题二和三:数据库用trigger,在insert、update和delete表web1时候,可以让数据库去更新web2。
      

  3.   

    1、数据复制的问题可以通过存储过程解决(源表和目的表是否在同一个数据库中没有关系);
    2、可以在表上定义Insert触发器,ACCESS不能使用这种方法;
    3、可以同样定义Update触发器;
      

  4.   

    如果是同库中
    Insert Into 表名(列名) Select (列名) From 表名如果是一个数据库服务器上的多个库用
    Insert Into 表名(列名) Select (列名) From 数据库..表名如果是多个不同数据库用
    Insert Into 表名(列名) Select (列名) From OpenRowset("","Select * from web2") as A
    OpenRowset这个东西请参考SQL Server 2000的帮助
      

  5.   

    1.同意大多数人的意见
    Insert Into 表名(列名) Select (列名) From 表名如果是一个数据库服务器上的多个库用
    Insert Into 表名(列名) Select (列名) From 数据库..表名
    2.3.建议在数据库中使用触发器和零时表来维护,你可不必做过多的介入!
      

  6.   

    异构数据库:用手动执行程序实现对第一次复制的初始化用datetamp(时间戳)实现对数据更新和Insert的处理,用GUID实现对删除的处理
      

  7.   

    Corny() 用datetamp(时间戳)实现对数据更新和Insert的处理,用GUID实现对删除的处理 .
             你能说的详细一点么
      

  8.   

    问题一大家都说了,2、3其实只要你在操作的时候直接在操作的时候在对应函数中加个对复制后的web2的操作(支持trigger的用trigger,不支持的直接用程序)
      

  9.   

    一般的数据库都能支持最后写行的时间记录datetamp,根据这个你可以确定被insert和update的行,每行一个GUID,你可以确定源表中存在而目标表中不存在的GUID实现对删除的处理
      

  10.   

    “用datetamp(时间戳)实现对数据更新和Insert的处理,用GUID实现对删除的处理”限于特定的数据库,例如SQLServer,既然是异构的数据库,很可能无法使用,还是自己手工做标记比较可行一点,只要用一个DataSet把做过标记的记录读出来,然后更新到另一个库中去就行了。
    异构的数据库、大量的数据但只有小部分需要更新,这样应该可以比较高效的实现:在原表增加一个字段,添加、修改、删除时在这个字段做标记,如删除不要实际删除。然后运行一个监控程序,定时把做过标记的记录更新到另一个库中去,同时作实际删除,成功后修改标记字段的值。
      

  11.   

    或许,你的问题是,原库上运行一个老软件,数据修改你根本不能控制。如果,这样就只好指望原表有datetamp字段了,或者干脆每次来个全表更新,如果有足够的时间的话。
      

  12.   

    正因为是异构的数据库,所以才用datetamp,否则,前面好远提出的复制早就解决了据我所知,目前大多数数据库能支持datetamp(当然如果你的现有数据库在此之外,当我白说了)这样做最明显的内容是你只需要为原数据库中的表增加一列,这与增加一列标记不同之处在于你的标记需要程序或触发器(能否支持成问题)来处理,而datetamp由数据库系统自动处理,当然最好是能够支持GUID,那样处理删除会比较好,否则你就需要用其他数据库现有的标识列来处理删除问题,条件是最好不要去动原有的数据处理程序,否则的话,所有这里的问题都白讨论了.每次做全库更新显然是不可取的,因为标题中有大数据量的条件
      

  13.   

    你说的没错!既然要在异构的数据库之间更新,一定是因为软件升级等原因,修改原库很可能是不可取、也不太可能的。不过,我用的Informix,因为版本比较老,就不支持timestamp,相信这也不是唯一的例子,而且,即使只加上timestamp列,原来的软件也很可能会出现异常。怎么办呢?如果是MIS系统,相信日期、时间作为MIS中的重要数据,在很多表里都存在,或许可以依赖这个。还有,一个存有大量数据的表,一般来说是保存历史数据用的,那么这些数据的生成过程,是否会使用其他表呢?这或许也是一个途径。
      

  14.   

    1。若数据库有工具可以使用导入/出工具;
    2。将数据库2中表web2清除,然后全部从数据库1中表web1倒数
    insert into 数据库2..表web2 values 
     select * from 数据库1..表web1
    3。根据判断修改数据库2中表web2
    插入:
    insert into 数据库2..表web2 values 
     select * from 数据库1..表web1 as A 
      where not exists (select * from 数据库2..表web2 where id = A.id)
    删除:
    delete 数据库2..表web2 where not exists 
      (select * from 数据库1..表web1 where id = 数据库2..表web2.id)
    修改假设根据修改日期:
    update 数据库2..表web2 set col1 = A.col1 ....... from 数据库1..表web1 as A
     where 数据库2..表web2.edate < A.edate
      

  15.   

    1. 用存储过程或者是直接SQL 语句
    2.3 用触发器