问题描述:
两个数据库 A, B
A数据库中有表TAB_A,B数据库中有表TAB_B
A数据库表TAB_A比B数据库表TAB_B多一个FLAG字段,该FLAG字段有0.1.2.3四个取值,分别代表不变,删除,新增,更新四种操作,
当为1时,需要同时在B库中的TAB_B中删除相应记录,然后TAB_A中FLAG置0,
当为2时,需要同时在B库中的TAB_B中新增相应记录,然后TAB_A中FLAG置0,
当为3时,需要同时在B库中的TAB_B中更新相应记录,然后TAB_A中FLAG置0,
当为0时,不进行任何操作
如何在库A中定义一个存储过程,完成如上操作,即让A和B同步。
在线等,谢谢

解决方案 »

  1.   

    delete from TAB_B where 主建 in (select 主建 from TAB_A where FLAG=1);
    update TAB_A set FLAG=0 where FLAG=1;
    insert into TAB_B (所有字段) select 除了flag的所有字段 from TAB_A where FLAG=2;
    update TAB_A set FLAG=0 where FLAG=2;
    update TAB_B set (所有字段)= (select 除了flag的所有字段 from TAB_A where FLAG=3 and TAB_A.主建=TAB_B.主建)--11对应
    where exists(select 'z' from TAB_A a where a.主建=TAB_B.主建); --确定更新哪些记录
    update TAB_A set FLAG=0 where FLAG=3;
    3个update你也可以最后执行