SQL触发器中怎么给变量赋值 10
ALTERTRIGGERT_addMarket---销售表触发器ONMarket---销售表AFTERinsertASBEGINdeclare@Cnumberint;--...
ALTER TRIGGER T_addMarket---销售表触发器
ON Market---销售表
AFTER insert
AS
BEGIN
declare @Cnumber int;----销售商品的数量
declare @Cid varchar(50);----库存里面商品的ID
update Commodity---商品库存 set Cnumber=Cnumber-@Cnumber where Cid=@Cid
END
这是我创建好的触发器,我的意思是我在我销售商品时数量是自己填写的比如说2个,ID为S001,销售成功后使库存里面S001的这个商品数量减少2个
insert into Market(MCid,Mname,Mnumber)values('S0001','电fan',2)就像我添加这句代码时,它显示的是0行受影响和1行受影响,库存里面没有变化
这样怎么把那两个变量调用出来 展开
ON Market---销售表
AFTER insert
AS
BEGIN
declare @Cnumber int;----销售商品的数量
declare @Cid varchar(50);----库存里面商品的ID
update Commodity---商品库存 set Cnumber=Cnumber-@Cnumber where Cid=@Cid
END
这是我创建好的触发器,我的意思是我在我销售商品时数量是自己填写的比如说2个,ID为S001,销售成功后使库存里面S001的这个商品数量减少2个
insert into Market(MCid,Mname,Mnumber)values('S0001','电fan',2)就像我添加这句代码时,它显示的是0行受影响和1行受影响,库存里面没有变化
这样怎么把那两个变量调用出来 展开
2个回答
2022-12-01 · 百度认证:北京惠企网络技术有限公司官方账号
关注
展开全部
declare @Cnumber int;----销售商品的数量\x0d\x0a declare @Cid varchar(50);----库存里面商品的ID\x0d\x0a--给需要减少的商品的数量赋一个初始值,确保在重新赋值时不会出错\x0d\x0a\x0d\x0aSET @Cnumber = 0\x0d\x0a--给商品的编号赋赋一个初始值\x0d\x0aSET @Cid = '1'\x0d\x0a--如果不赋个初始值,在从inserted中获取并赋值时会出现值为NULL的情况\x0d\x0a\x0d\x0a--获取需要减少的商品的数量和商品的编号\x0d\x0a\x0d\x0aSELECT @Cnumber = Cnumber,@Cid = Cid FROM inserted\x0d\x0a--接下来的更新操作就是按照你原来的去更新就行了\x0d\x0a\x0d\x0a update Commodity---商品库存 set Cnumber=Cnumber-@Cnumber where Cid=@Cid\x0d\x0a\x0d\x0a--也可以这样更新\x0d\x0aUPDATE Commodity SET Cnumber = Cnumber - Cnumber\x0d\x0aFROM\x0d\x0a Commodity AS T\x0d\x0aINNER JOIN\x0d\x0a inserted AS T1\x0d\x0aON\x0d\x0a T.Cid = T1.Cid\x0d\x0a--这样可以批量更新,那么针对一条数据进行更新是没问题的,同事也省去了声明变量一级变量赋值的步骤
展开全部
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
--这样可以批量更新,那么针对一条数据进行更新是没问题的,同事也省去了声明变量一级变量赋值的步骤
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
--这样可以批量更新,那么针对一条数据进行更新是没问题的,同事也省去了声明变量一级变量赋值的步骤
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询