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