求sql server 2000触发器,更新修改删除一个表,库存自动增减的写法

特殊情况,库存中没有的商品,需要新增品种。
2025-03-02 11:37:28
推荐回答(2个)
回答1:

create trigger tri_asb
on asb for insert
as
begin
declare @rk int
declare @ck int
declare @sid varchar(20)
select @sid=商品代码 ,@rk =入库数量,@ck=出库数量 from inserted
if not exists(select * from asb where 商品代码=@sid)
insert into bsb(商品代码,数量) values(@sid,@rk-@ck)
else
update bsb set 数量=数量+(@rk-@ck) where 商品代码=@sid
end

回答2:

create trigger trUp
on 出入库流水帐
for insert
as
begin
if exists(select 1 from inserted where not exists(select 商品代码 from 库存表 where 库存表.商品代码=inserted.商品代码))
insert into 库存表 select (distinct 商品代码),0 from inserted where not exists(select 商品代码 from 库存表 where 库存表.商品代码=inserted.商品代码)
--上面是判断是否有新的商品代码数据,并插入库存为0的该商品代码
update 库存表 set 数量=库存表.数量+inserted.入库数量+inserted.出库数量*(-1)
from inserted
where inserted.商品代码=库存表.商品代码
end

依照思路,for update和for delete应该不难了吧 ,如果需要注释,追