1、CREATE TRIGGER Tr_入库表 ON 入库表
after insert,update,delete
AS
begin
update a set a.库存数量=a.库存数量 +b.入库数量
from 零件信息表 a,(select 零件号,sum(入库数量) 入库数量 from inserted group by 零件号 ) b --如果每次插入时零件号不重复,则不必聚合
where a.零件号 =b.零件号
go
update a set a.库存数量=a.库存数量 -b.入库数量
from 零件信息表 a,(select 零件号,sum(入库数量) 入库数量 from deleted group by 零件号 ) b --如果每次插入时零件号不重复,则不必聚合
where a.零件号 =b.零件号
go
end
2、CREATE TRIGGER Tr_出库表 ON 出库表
after insert,update,delete
AS
begin
update a set a.库存数量=a.库存数量 -b.出库数量
from 零件信息表 a,(select 零件号,sum(出库数量) 出库数量 from inserted group by 零件号 ) b --如果每次插入时零件号不重复,则不必聚合
where a.零件号 =b.零件号
go
update a set a.库存数量=a.库存数量 +b.出库数量
from 零件信息表 a,(select 零件号,sum(出库数量) 出库数量 from deleted group by 零件号 ) b --如果每次插入时零件号不重复,则不必聚合
where a.零件号 =b.零件号
go
end
首先,你插入触发器不需要这么多的变数,你写触发器不支持批量插入。 。可以:创建一个
插入
插入B </触发章回
>选择项目没有,ITEM_NAME的,item_spec,item_full_name ITEM_TYPE,品牌从插入结束
GO
至于你删除了一个问题,我想这是你的B表删除触发器。
像这样的查询,你可以看看在B DELETE触发器操作
删除数据A执行,sp_helptrigger''
当入库数量>=库存数量???列子中明显只是 当入库数量>库存数量 啊
试下
SELECT * FROM
(SELECT * ,SUM(入库量)OVER ((PARTITION BY DEPTNO 零件ID order BY 入库时间 ) AS 入库量,
SUM(库存数量) OVER (PARTITION by 零件ID order by入库时间) AS 总量 FROM 查询结果表 )x
WHERE 入库量<=总量