加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer存储过程中事务咋用,具体代码是什么

发布时间:2023-04-18 14:46:01 所属栏目:MsSql教程 来源:
导读:在实际应用中,我们有时候会遇到“SQLServer存储过程中事务怎么用,具体代码是什么”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“SQLServer存储过程中事务怎么用,具体代码
在实际应用中,我们有时候会遇到“SQLServer存储过程中事务怎么用,具体代码是什么”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“SQLServer存储过程中事务怎么用,具体代码是什么”文章能帮助大家解决问题。
 
本文为大家分享了SQLServer存储过程中事务的使用方法,具体代码如下
 
create proc usp_Stock
 
@GoodsId int,
 
@Number int,
 
@StockPrice money,
 
@SupplierId int,
 
@EmpId int,
 
@StockUnit varchar(50),
 
@StockDate datetime,
 
@TotalMoney money ,
 
@ActMoney money ,
 
@baseId int,
 
@Description nvarchar(255)
 
as
 
  declare @error int =0 --事务中操作的错误记录
 
  --开启事务
 
  begin transaction
 
    --实现进货信息的添加
 
    insert into StockInfo values(@GoodsId, @Number, @StockPrice, @SupplierId, @EmpId, @StockUnit, @StockDate, @TotalMoney, @ActMoney,DEFAULT,@Description, @baseId)
 
    set @error+=@@ERROR --记录有可能产生的错误号  
 
    --获取当前进货信息的标识列
 
    --判断当前商品有没有进货记录
 
    if exists (select * from dbo.InventoryInfo where goodid=@GoodsId) --说明记录存在,直接修改库存数量
 
      begin
 
        update dbo.InventoryInfo set GNumber=GNumber+@Number,TotalMoney+=@TotalMoney where goodid=@GoodsId
 
        set @error+=@@ERROR --记录有可能产生的错误号      
 
    end  
 
    else --这个商品从来没有过进货记录,那么就应该添加新的存在信息
 
      begin
 
        declare @GWarningNum int --此商品的预警数量
 
        --获取预警数量
 
        set @GWarningNum=(select WaringNum from dbo.GoodsInfo where GId=@GoodsId)
 
        insert into   dbo.InventoryInfo values(@GoodsId,@Number,@baseId,@GWarningNum,@TotalMoney,'第一次进货',default)
 
        set @error+=@@ERROR --记录有可能产生的错误号      
 
      end
 
--判断事务的提交或者回滚
 
if(@error<>0)
 
  begin
 
    rollback transaction
 
    return -1 --设置操作结果错误标识
 
  end
 
else
 
  begin
 
    commit transaction
 
    return 1 --操作成功的标识
 
  end
 
go
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章