同一数据库sjk中有aa表和bb表,bb包含aa的所有列,xh列为主键,要求:
修改aa中某条记录的某些列如lie1、lie2时如果bb中有该条记录则更新相应列并在bb中的bz列注明(up),否则插入该条记录并在bb中的bz列注明(in)。

解决方案 »

  1.   

    create trigger tru_aa
    on aa
    for insert
    as
    begin
    update b set b.lie1=i.lie1,b.lie2=i.lie2 ,b.bz='up'
    from bb b,inserted i where b.xh=i.xh insert b (lie1,lie2,bz)select lie1,lie2,'in' 
    from inserted 
    where not exists( select 1 from bb where xh=i.xh)
    end
      

  2.   

    补个update
    create trigger tru_aa
    on aa
    for insert,update
    as
    begin
    update b set b.lie1=i.lie1,b.lie2=i.lie2 ,b.bz='up'
    from bb b,inserted i where b.xh=i.xh insert b (lie1,lie2,bz)select lie1,lie2,'in' 
    from inserted 
    where not exists( select 1 from bb where xh=i.xh)
    end
      

  3.   

    谢谢xys_777(永生 ) ,结贴了。
      

  4.   

    再问下xys_777(永生 ):提示:
    消息 4104,级别 16,状态 1,过程 tru_aa,第 7 行
    无法绑定由多个部分组成的标识符 "i.xh"。怎么办?
    用的是sql2005