在A表中写delete触发器
update B set 库存 = 库存 - deleted.材料的数量 where B.材料标识 = deleted.材料标识

解决方案 »

  1.   

    create trigger tr_delete_A on A
    for delete
    as
    update B set 库存=b.库存-d.库存
    from B,(select 材料编号,库存=sum(数量) from deleted group by 材料编号)d
    where b.材料编号=d.材料编号
      

  2.   

    我的表的结构是这样的
    A:
    autoid invcode  qty
    B:
    autoid invcode  stockQty
     
    谢谢奇奇!
    我按你的方法写:update B set B.stockQty=B.stockQty-deleted.Qty
    显示107错误:列前缀“DELETED"与查询中所用的表名或别名不匹配。
    谢谢邹建!
    你的代码没有错误,我是这样写的:
    create trigger inout_deleted
    on A
    for delete
    as
    update B set stockQty=B.stockQty-deleted.Qty
    from B,(select invcode,Qty=sum(Qty) from deleted group by invcode)deleted
    where B.invcode=deleted.invcode
    但我不知这句from B,(select invcode,Qty=sum(Qty) from deleted group by invcode)deleted
    中B后一个逗号,和括号后一个DELETED是什么意思???帮我解答一下吧!!!
      

  3.   

    看一下帮助,关于update得用法,而挂号里的我猜该是材料出库表,这里用的是触发器,可能得用DELETED表示吧