主表M(ID,VC,VN), 从表D(ID,P,P1), 关联字段ID现从表D中有一个价格字段P需要触发器进行这样的计算1. 主表M中字段VC为'01'时,才进行触发计算;
2. 从表D字段P=字段P1*1.05;
3. 从表D的更新,只针对单行记录。该如何写?

解决方案 »

  1.   

    --trycreate trigger tr on M
    for insert, update
    as
    update D set P=P1*1.05
    from inserted as A
    where A.VC='0.1' and D.ID=A.ID
      

  2.   

    create trigger trg_M on M
    instead of insert,update
    as
    begin
        update D set P=P1/1.05 from deleted  t where t.ID=D.ID and t.VC='01'
        
        update D set P=P1*1.05 from inserted t where t.ID=D.ID and t.VC='01'
    end
    go
      

  3.   

    引自楼主:
    1. 主表M中字段VC为'01'时,才进行触发计算;
      

  4.   

    --trycreate trigger tr on D
    for update
    as
    if update(P1)
    update D set D.P=D.P1*1.05
    from inserted as A, M
    where M.VC='0.1' and M.ID=D.ID and D.ID=A.ID