SQLServer存储过程中事务怎么用,具体代码是什么
Admin 2022-06-23 群英技术资讯 899 次浏览
在实际应用中,我们有时候会遇到“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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
今天遇到了关于Sql Server最大连接数(Max Pool Size)的问题,后来通过查找一些资料解决了,所以想着总结下关于SQL Server最大连接数的内容,所以这篇文章主要介绍了SQL设置SQL Server最大连接数与查询语句,有需要的朋友们可以参考借鉴。
本文主要介绍了SQL查询连续登陆7天以上的用户的方法实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
B/S架构中最经典的话题无非于三层架构,可以大概分为数据层,业务逻辑层和表示层,而数据层的作用一般都是和数据库交互,例如查询记录。我们经常是写好查询SQL,然后调用程序执行SQL。但是它内部的工作流程是怎样的呢?先做哪一步,然后做哪一步等,我想还有大部分朋友和我一样都不一定清楚。
这篇文章主要为大家详细介绍了SqlServer高版本数据备份还原到低版本的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文详细讲解了SQL中的连接查询,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008