当前位置:Gxlcms > 数据库问题 > Sqlserver 触发器的使用

Sqlserver 触发器的使用

时间:2021-07-01 10:21:17 帮助过:15人阅读

[MyData] GO /****** Script Date: 2020/1/5 星期日 16:44:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create TRIGGER [dbo].[Tr_StockDetail] ON [dbo].[StockDetail] AFTER INSERT AS DECLARE @StockCount INT, @InOrOut INT, @GoodsType intBEGIN SET NOCOUNT ON; SELECT @StockCount=StockCount,@InOrOut=InOrOut,@GoodsType=GoodsType FROM INSERTED if @InOrOut=1 update StockSum set Sum=SUM+@StockCount where GoodsType=@GoodsType else update StockSum set Sum=SUM-@StockCount where GoodsType=@GoodsType END

 那接下我们按要求执行一次入库操作:

insert into [MyData].[dbo].[StockDetail]
  (  
      [StockCount]
      ,[InOrOut]
      ,[GoodsType]
  )values
  (
  40,
  1,
  2
  )

没有执行入库操作前两个表的情况:

技术图片技术图片

 

执行操作后两个表的情况:

 

 技术图片技术图片

对比一下是不是变了,入库记录多一条的同时,库存商品类型2加个30个商品。

   个人感觉,用触发器其实真没多大必要,像这种逻辑操作,我一个存储过程就搞定了,感觉真实没必要用触发器。再说用触发器,在后期维护的时候很容易被遗忘,尤其是前一个人交接给后一个人的工作,用触发器操作数据库,很难找。我深有体会,真他妈太苦逼了!

   

 

    

Sqlserver 触发器的使用

标签:右击   数据表示   包含   入库   begin   HERE   sele   sel   kde   

人气教程排行