新闻动态
新闻动态
NEWS INFORMATION

SQLServer存储过程中事务的使用方法

发布日期:2021-12-21 13:25 | 文章来源:源码中国

本文为大家分享了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

希望本文所述对大家学习数据库操作有所帮助。

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部