sql数据库创建触发器(急需!SQL创建一个触发器,要求当插入、更新、删除销售表的销售记录时,根据销售数量能更新产品表)

本文目录
急需!SQL创建一个触发器,要求当插入、更新、删除销售表的销售记录时,根据销售数量能更新产品表
t_spxsrb=销售日报 t_spkcmx=商品库存明细 kcsl=库存数量 xssl=销售数量 spbm=商品编码
create or replace trigger trigger_DML
before insert or update or delete on t_spxsrb
for each row
begin
if updating then
update t_spkcmx set kcsl=kcsl-(:new.xssl-:old.xssl) where spbm=:old.spbm;
dbms_output.put_line(’修改’);
elsif deleting then
update t_spkcmx set kcsl=kcsl+:old.xssl where spbm=:old.spbm;
dbms_output.put_line(’删除’);
elsif inserting then
update t_spkcmx set kcsl=kcsl-:new.xssl where spbm=:new.spbm;
dbms_output.put_line(’插入’);
end if;
end trigger_DML;
SQl如何创建累计统计表然后创建触发器
CREATE TRIGGER T1 ON 产品供应表
FOR INSERT AS
IF EXISTS(SELECT * FROM 累计统计表 JOIN inserted
ON 累计统计表.厂家编码=inserted.厂家编码 AND 累计统计表.产品编码=inserted.产品编码)
UPDATE 累计统计表 SET 累计供应数量=累计供应数量+供应数量
FROM 累计统计表 JOIN inserted
ON 累计统计表.厂家编码=inserted.厂家编码 AND 累计统计表.产品编码=inserted.产品编码
ELSE INSERT INTO 累计统计表
SELECT S.厂家编码,厂家名称,C.产品编码,产品名称,SUM(供应数量) 累计供应数量
FROM 生产厂家表 S JOIN inserted G ON S.厂家编码=G.厂家编码
JOIN 产品表 C ON C.产品编码=G.产品编码
GROUP BY S.厂家编码,厂家名称,C.产品编码,产品名称
GO

更多文章:
blast premier春季赛(csgo战队vitality有谁)
2026年9月7日 21:50
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00





