我是靠谱客的博主 平常音响,最近开发中收集的这篇文章主要介绍mssql触发器更新,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

create trigger OA_Change_Stock
on OA_GoodsDetail for UPDATE
as
begin
if(UPDATE (GoodsCount))
begin
 DECLARE @before_Record numeric(12,2)--修改之前的
 DECLARE @after_Record numeric(12,2)--修改之后���
 DECLARE @ItemID varchar(10)--物资id
 DECLARE @DonateID varchar(50)--来源id
 DECLARE @result numeric(12,2)--两个值的差 @after_Record-@before_Record

 select @after_Record = GoodsCount from inserted --从更新后的副本表(临时表)里面 获得要修改后的状态
 select @ItemID = ItemID,@DonateID=DonateID,@before_Record = GoodsCount from deleted --从之前删掉的临时表里面获取原来的值
 if @before_Record is null
 begin
  set @before_Record=0
 end;
 if @after_Record is null
 begin
  set @after_Record=0
 end;
 set @result = @after_Record - @before_Record
 update OA_GoodStock set GoodsCount = GoodsCount + @result where ItemID=@ItemID and DonateID=@DonateID
end;
if(UPDATE (WareHouseID))
begin
 DECLARE @WH_ID int--修改之后
 DECLARE @ItemID1 varchar(10)--物资id
 DECLARE @DonateID1 varchar(50)--来源id
 --select @WH_ID = WareHouseID from inserted --从更新后的副本表(临时表)里面 获得要修改后的状态
 select @ItemID1 = ItemID,@DonateID1=DonateID,@WH_ID = WareHouseID from inserted --从更新后的副本表(临时表)里面 获得要修改后的状态
 update OA_GoodStock set WareHouseID = @WH_ID where ItemID=@ItemID1 and DonateID=@DonateID1
end;
end;

最后

以上就是平常音响为你收集整理的mssql触发器更新的全部内容,希望文章能够帮你解决mssql触发器更新所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部