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

作者:iceKnight 时间:2024-01-29 06:56:03 

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

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

标签:sqlserver,事务
0
投稿

猜你喜欢

  • 每天迁移MySQL历史数据到历史库Python脚本

    2024-01-27 20:43:00
  • Javascript实现图片懒加载插件的方法

    2024-04-19 10:16:44
  • sql2005 存储过程分页示例代码

    2024-01-13 03:09:06
  • Python要求O(n)复杂度求无序列表中第K的大元素实例

    2023-07-30 13:18:01
  • 关于pyinstaller生成.exe程序报错:缺少.ini文件的分析

    2023-12-25 13:43:22
  • Python+OpenCV实现基于颜色的目标识别

    2022-10-28 02:57:27
  • Python argparse库的基本使用步骤

    2023-12-14 08:02:29
  • 简化ADO数据库操作的控件(带分页功能)

    2008-05-20 13:15:00
  • Python开发桌面小程序功能

    2023-07-01 14:46:59
  • 10大实用web应用界面技术[译]

    2009-01-20 12:40:00
  • 浅谈python3.6的tkinter运行问题

    2021-08-04 01:29:16
  • JS实现页面滚动到关闭时的位置与不滚动效果

    2024-04-10 10:47:56
  • 浅谈Transact-SQL

    2024-01-23 20:13:22
  • 对python使用http、https代理的实例讲解

    2022-03-13 00:03:08
  • JavaScript性能优化小技巧,创建文档碎片

    2010-03-31 18:27:00
  • linux centos 7.x 安装 python3.x 替换 python2.x的过程解析

    2021-11-27 02:46:43
  • Python计算多幅图像栅格值的平均值

    2021-03-28 01:41:05
  • python获取对象信息的实例详解

    2022-04-30 14:55:50
  • python从入门到精通(DAY 1)

    2022-08-12 17:26:56
  • PHP运行环境配置与开发环境的配置(图文教程)

    2024-05-11 09:24:46
  • asp之家 网络编程 m.aspxhome.com