表A有A1,A2,A3列,表B有B1,B2,B4列,B1,B2列由同步触发器从表A的A1,A2而来。现在问题来了,B4列的数据在表A做了一次更新动作(可能是删除同时插入吧?)后,数据不见了……
请大侠帮我做一个表A的触发器,把表A的A1,A2列同步到表B的B1,B2,同时表A在做更新动作的时候不要清理掉B4的数据……菜鸟问题,见笑了……

解决方案 »

  1.   

    --A做插入更新时,不要 动到B.B4就可以了
    create trigger tri_A
    on A
    after insert,update
    as
    begin
    update B
    set B1=t.A1,B2=t.A2
    from B
    inner join inserted t on B.id=t.id  -->现在关联是通过id关联,不知道你那里什么关联?
    end
      

  2.   

    不知道原来代码是什么写的,数据不见一般是用null去更新那一列最好你能够给出原来的代码,可以看到问题在哪里?
      

  3.   


    你可以只更新B1,B2字段
    给你写一个例子:
    if object_id('tr_test','tr')is not null
    drop trigger tr_test
    go
    create trigger tr_test
    on 表a
    for update
    as
    begin
       if update(B1) and update(B2)
       begin
          --语句块
       end
    end