我有一个数据库1,现在要重新有一个数据库2,要求从数据库1中同步取得一些符合要求的数据(即当数据库1更新后,我的数据库2也要跟着更新,这个只能从数据库1),怎样做才能即高效又适时呢?

解决方案 »

  1.   

    用数据库的触发器功能呀!在你对数据表1进行添加、删除、修改操作的时候,分别对数据 表2进行更新详细的内容见SQL SERVER联机帮助中的“触发器”
      

  2.   

    Drate(鸟窝里的虫) :我的數據庫1是unix下的sybase,數據庫2是windows下的sql server2000,
    請問如何用出發器功能呢?
      

  3.   

    如果是不同结构的数据库同步的话
    那一般就要在你自己的程序中实现了
    如:读取第一个数据库中符合条件的记录
    然后把这些记录提交到数据库2中,
    如果中间出了问题,那就回滚事务,取消更新
    大致的代码如下:procedure TAccountDefForm.PostUpdate;
    begin
      if (SysQuery.State = dsEdit) or (SysQuery.State = dsInsert) then
        SysQuery.Post;
      if not DataModule1.ADOConnection1.InTransaction then
        DataModule1.ADOConnection1.BeginTrans;
      try
        {read data from database1}
        {wtrite data to query :LogQuery}
        LogQuery.UpdateBatch();//Update Data
        DataModule1.ADOConnection1.CommitTrans;  // Commit
      except
        on e:Exception do
        begin
          ShowMessage(e.Message);
          DataModule1.ADOConnection1.RollbackTrans;
        end;
      end;
    end;