表A
货币种类 varchar --其他数据项还有  不重要不写了 表A-B是主从表 A主表,B从表表B 
单价 int, 总价 int --其他数据项还有  不重要不写了 表C 
货币种类 varchar , 汇率 int 表A的货币是个select BOX 就是表C的外键 c.货币种类=a.货币种类 现在是改变表A中 update 货币种类 然后让 B表中的 2个单价 都自×以表C的汇率 ;比如 
货币种类 
 人名币单价  总价
100   100货币种类  汇率 
人名币     1
美元       1/8 现在UPDATE A set  货币种类= '美元'  然后自动把 表B 变成 100/8 , 100/8 我想在表B中放个触发器 应该怎么写?

解决方案 »

  1.   

    逻辑表 只有 deleted 和 inserted  对于更新的东西怎么办?
      

  2.   

    create trigger tri_update
    on A
    for update
    as
    if update(货币种类)
      begin
        update B
        set 单价=单价*c.汇率, 总价=总价*c.汇率
         from inserted
        where inserted.货币种类=c.货币种类
      end
      

  3.   

    create trigger tg on 表A
    for update
    as
    if update(货币种类)
    begin
      update B set b.单价 = b.单价*c.汇率,b.总价=b.总价*c.汇率
      from 表B B join inserted A on a.id=b.id join 表C c on a.货币种类=c.货币种类
    end
      

  4.   

    --应该在A中放个触发器。
    create trigger trig_update_a on a
    for update as
    update b set 单价 =单价*c.汇率 ,总价=总价*c.汇率 from inserted ,c where b.主键=inserted.主键 and inserted.货币种类=c.货币种类
      

  5.   

    3Q学到很多 原来 update 和insert 共用一张逻辑表