当前位置: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

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

  1. <span style="color: #0000ff;">insert</span> <span style="color: #0000ff;">into</span> <span style="color: #ff0000;">[</span><span style="color: #ff0000;">MyData</span><span style="color: #ff0000;">]</span>.<span style="color: #ff0000;">[</span><span style="color: #ff0000;">dbo</span><span style="color: #ff0000;">]</span>.<span style="color: #ff0000;">[</span><span style="color: #ff0000;">StockDetail</span><span style="color: #ff0000;">]</span><span style="color: #000000;">
  2. (
  3. </span><span style="color: #ff0000;">[</span><span style="color: #ff0000;">StockCount</span><span style="color: #ff0000;">]</span><span style="color: #000000;">
  4. ,</span><span style="color: #ff0000;">[</span><span style="color: #ff0000;">InOrOut</span><span style="color: #ff0000;">]</span><span style="color: #000000;">
  5. ,</span><span style="color: #ff0000;">[</span><span style="color: #ff0000;">GoodsType</span><span style="color: #ff0000;">]</span><span style="color: #000000;">
  6. )</span><span style="color: #0000ff;">values</span><span style="color: #000000;">
  7. (
  8. </span><span style="color: #800000; font-weight: bold;">40</span><span style="color: #000000;">,
  9. </span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">,
  10. </span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">
  11. )</span>

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

技术图片技术图片

 

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

 

 技术图片技术图片

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

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

   

 

    

Sqlserver 触发器的使用

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

人气教程排行