SQL触发器中怎么给变量赋值
发布网友
发布时间:2022-04-13 13:31
我来回答
共1个回答
热心网友
时间:2022-04-13 15:00
declare @Cnumber int;----销售商品的数量
declare @Cid varchar(50);----库存里面商品的ID
--给需要减少的商品的数量赋一个初始值,确保在重新赋值时不会出错
SET @Cnumber = 0
--给商品的编号赋赋一个初始值
SET @Cid = '1'
--如果不赋个初始值,在从inserted中获取并赋值时会出现值为NULL的情况
--获取需要减少的商品的数量和商品的编号
SELECT @Cnumber = Cnumber,@Cid = Cid FROM inserted
--接下来的更新操作就是按照你原来的去更新就行了
update Commodity---商品库存 set Cnumber=Cnumber-@Cnumber where Cid=@Cid
--也可以这样更新
UPDATE Commodity SET Cnumber = Cnumber - Cnumber
FROM
Commodity AS T
INNER JOIN
inserted AS T1
ON
T.Cid = T1.Cid
--这样可以批量更新,那么针对一条数据进行更新是没问题的,同事也省去了声明变量一级变量赋值的步骤