求这个触发器的写法解决方法
求这个触发器的写法
序号 编号 单价 数量 小计 合计
1 A 1 10 10 40
2 A 2 15 30 40
如上,表中结构。
触发器要求:如果修改了单价或者数量,那么 把 编号相同的 合计自动算出来,比如:
序号 编号 单价 数量 小计 合计
1 A 1.5 10 15 45
2 A 2 15 30 45
修改了序号1 的单价,自动修改跟它相同编号A的 合计(把序号1,2的合计都自动算出来)
表名:d_sale
编号 d_no ; 单价d_up ; 数量 d_qty ; 小计 d_amt ; 合计 d_total;
------解决思路----------------------
序号 编号 单价 数量 小计 合计
1 A 1 10 10 40
2 A 2 15 30 40
如上,表中结构。
触发器要求:如果修改了单价或者数量,那么 把 编号相同的 合计自动算出来,比如:
序号 编号 单价 数量 小计 合计
1 A 1.5 10 15 45
2 A 2 15 30 45
修改了序号1 的单价,自动修改跟它相同编号A的 合计(把序号1,2的合计都自动算出来)
表名:d_sale
编号 d_no ; 单价d_up ; 数量 d_qty ; 小计 d_amt ; 合计 d_total;
------解决思路----------------------
create trigger tri_update_price
on 表名
for update
as
declare @oldprice decimal(18,1),@newprice decimal(18,1),@num varchar(10);
select @oldprice=单价 ,@num=编号 from deleted; --更新前的单价
select @newprice=单价 from inserted --更新后的单价
if @oldprice!=@newprice
begin
update 表名 set 合计=(select Sum(合计) from 表名 where 编号=@num) where 编号=@num
end