sorry!赶去请客了,所以没把问题讲清楚。
操作发票的[已付金额]会自动更新客户的[已付金额]。
操作付款明细的[付款金额]会自动更新更新发票的[已付金额],但不会更新客户的[已付金额]。
我定义的是insert,update触发器。
想通过操作付款明细的[付款金额]一项自动更新发票和客户两张表的[已付金额]但不行,情况如上示!请明示小弟是咋个??,何故??
分数少吗?

解决方案 »

  1.   

    这样可以吗?
    create trigger trg1
    on 发票
    for update
    as
    update 客户
    set 已付金额=select 已付金额 from inserted
    where 客户.编号=deleted.购货单位编号create trigger trg2
    on 付款明细
    for update
    as
    update 客户
    set 已付金额=select 付款金额 from inserted
    where 客户.编号=deleted.编号update 发票
    set 已付金额=select 付款金额 from inserted
    where 发票.编号=deleted.编号
      

  2.   

    不明白你的意思,不过我想你的意思是不是在 select操作时就触发触发器啊。
    select是不能够触发触发器的。
      

  3.   

    最好用事务来处理:
    create trigger tr
    on 付款明细
    for update
    as
    begin
    begin transaction
    update 客户
    set 已付金额=select 付款金额 from inserted
    where 客户.编号=deleted.编号update 发票
    set 已付金额=select 付款金额 from inserted
    where 发票.编号=deleted.编号
    if @@error<>0
    begin 
    rollback transaction --如果有错误那么直接回滚到触发这个触发器的语句前面,后面的批处理语句将终止
    return
    end
    commit transaction
    end