如果你的数据库系统支持触发器的话,可以在TableB上建一个INSERT触发器,将新写入TableB中的记录同时写入到另外一张中间表中。

解决方案 »

  1.   

    你取B中记录时可以判断的啊
    记录每次处理后的ID
    where ID> Old_ID
      

  2.   

    解决方案:
       1、 windindance(风舞轻扬) 的方法很好,你有自增长的id,
    第次记录这人id就可以了,根据它的判断是最好的,
       但用户增加的数据可以,用户修改的数据就到不了A服务器了,这是个很大的弱点。
       2、你可以增加一个日期时间,记录每条记录的修改或创建时间,where mdatetime>old_datetime
          向A里更新数据时,结合id,修改用户修改过的数据,大于old_id的,增加新记录,小于的修改数据。
      

  3.   

    我赞成一号楼长bobfang(匆匆过客)的,你在插入到tableb中时,发送一条消息,在tablea中也增加,修改过程也一样。
      

  4.   

    现在的问题是服务器B是别的公司的,不能再做任何修改,没有触发器,而且也没有自增长的ID,也无法记录时间,所以让我很苦恼。
      

  5.   

    你两个表都有一主键在A表中insert 是如果记录存在那么它就会出错根据这个错误你就可以判断了
      

  6.   

    想增加速度,可以这样:
    try
      TableB.DisableControls;
      //...
      //DoSomethingHere
    finally
      TableB.EnableControls;
    end;
    由于TableB的记录指针在移动时不必考虑刷新相应的控件,速度可以大大提高
      

  7.   

    在TableB上建一个INSERT和UPDATE触发器,在新增和修改TableB中的记录同时写入到TableA中。
      

  8.   

    在B上建立一份订阅,启动AGENT服务,则A不需要任何操作就可得到相关数据。
      

  9.   

    如果是这样,那你只有把所有的数据down到本地进行处理,
    不过这并不是一种好办法,
    但以你目前的这种情况,只有些办法可行了,
    (但这种方法真的不可取不到万不得一最好不使用)最好的办法建议你和B服务器的公司协商一下,
    让他们加个字段是.
      

  10.   

    johnsonrao(johnson):在B上怎么建立一份订阅?我不知道
      

  11.   

    必须要求server B进行触发器安装,不然无法解决数据一致和同步。
    因为是跨表操作,所以不能直接使用事务,所以当B进行操作时,A必须等待。还有,如果你的A表和B表是一样的,我觉得没有必要进行什么这样的操作,
    既然你有a的READ RIGHT, YOU CAN JUST USE IT!!! The more usage you can use other way.
      

  12.   

    在 SQL Server 上是通过 DTS, 启动 Managerment 中的 SQL Server Agent,
    建立成功后在相应的Database 下将出现类似Windows共享式的手型图标。
    中间的过程也很简单,并且绝对能够满足你的要求。其它的你自己解决吧!
      

  13.   

    試試用這種語法:
    insert into Table1 
    select Table2.* from Table2,Table1 
    where Table1.ID not in (select ID from Table2)至于跨數據庫的操作連接,你可以用樓上的,也可以用SQL中的一個函數,不過
    這個函數不是很靈活,在語法上有些限制。