create trigger tri_入库表_delete on 入库表
for delete
as
update  库存表 set 数量=数量-a.数量 from deleted a where 库存表.货物id=a.货物id go当入库表有两行明细,货物ID是一样的就会出错
例如
IC01  100
IC01  500
当我把第二项明细删除,正常应该减去500库存,实际中发现是减去的100
不知怎么样解决,希各位能人援助。谢谢!

解决方案 »

  1.   

    create trigger tri_入库表_delete on 入库表
    for delete
    as
    update  库存表 set 数量=数量-(select sum(数量) from deleted a where 库存表.货物id=a.货物id )go
      

  2.   

    create trigger tri_入库表_delete on 入库表
    for delete
    as
    update a set 数量=a.数量-b.数量
    from 库存表 a,(
        select 数量=sum(数量), 货物id from deleted
        group by 货物id
    )b where a.货物id=b.货物id
      

  3.   

    update  库存表 set 数量=数量-a.数量 from deleted,a where 库存表.货物id=a.货物id