触发器

本文提供了一个MSSQL触发器的实例,包括在新增和更新操作时触发的两种情况,展示了如何通过触发器自动更新库存锁定状态及重量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

无奈,还是第一次写mssql的触发器,企业管理器直接有模板,不错,呵呵

放个demo供以后模仿:

//新增时触发

 

CREATE TRIGGER [In_EgStock] ON [dbo].[est_outlist]
after   insert
AS
declare @New_Weight float
select @New_Weight=weight from inserted


UPDATE P SET
  p.isSaleLock = 1 ,  p.salelockweight = isnull(p.salelockweight,0) +@New_Weight
FROM eg_stock  P,est_outlist G where G.stockid=p.stockid

 

 

//更新时触发

CREATE TRIGGER [Up_EgStock] ON [dbo].[est_outlist] 
after   UPDATE
AS
declare @Old_weight float
declare @New_Weight float
declare @isdel int


select @isdel=isdel  from inserted
select @Old_weight=weight from deleted

select @New_Weight=weight from inserted

if update(weight)
begin

  UPDATE P SET  p.isSaleLock = 1 ,  p.salelockweight = isnull(p.salelockweight,0) + (@New_Weight- @Old_weight) FROM eg_stock  P,est_outlist G where G.stockid=p.stockid and G.isdel<>1

  UPDATE P SET  p.isSaleLock = 0  FROM eg_stock  P,est_outlist G where G.stockid=p.stockid and p.salelockweight=0
end

else
if update(isdel)
begin
  if @isdel=1
    begin
        UPDATE P SET   p.salelockweight = isnull(p.salelockweight,0) - @New_Weight  FROM eg_stock  P,est_outlist G where G.stockid=p.stockid
   end
  else
if @isdel=0
  begin
       UPDATE P SET   p.salelockweight = isnull(p.salelockweight,0) +@New_Weight FROM eg_stock  P,est_outlist G where G.stockid=p.stockid
  end
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值