加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2023-06-03 11:26:11 所属栏目: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

(编辑:银川站长网)

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

    推荐文章