SQLServer存储过程中事务的使用方法
本文为大家分享了SQLServer存储过程中事务的使用方法,具体代码如下
createprocusp_Stock @GoodsIdint, @Numberint, @StockPricemoney, @SupplierIdint, @EmpIdint, @StockUnitvarchar(50), @StockDatedatetime, @TotalMoneymoney, @ActMoneymoney, @baseIdint, @Descriptionnvarchar(255) as declare@errorint=0--事务中操作的错误记录 --开启事务 begintransaction --实现进货信息的添加 insertintoStockInfovalues(@GoodsId,@Number,@StockPrice,@SupplierId,@EmpId,@StockUnit,@StockDate,@TotalMoney,@ActMoney,DEFAULT,@Description,@baseId) set@error+=@@ERROR--记录有可能产生的错误号 --获取当前进货信息的标识列 --判断当前商品有没有进货记录 ifexists(select*fromdbo.InventoryInfowheregoodid=@GoodsId)--说明记录存在,直接修改库存数量 begin updatedbo.InventoryInfosetGNumber=GNumber+@Number,TotalMoney+=@TotalMoneywheregoodid=@GoodsId set@error+=@@ERROR--记录有可能产生的错误号 end else--这个商品从来没有过进货记录,那么就应该添加新的存在信息 begin declare@GWarningNumint--此商品的预警数量 --获取预警数量 set@GWarningNum=(selectWaringNumfromdbo.GoodsInfowhereGId=@GoodsId) insertintodbo.InventoryInfovalues(@GoodsId,@Number,@baseId,@GWarningNum,@TotalMoney,'第一次进货',default) set@error+=@@ERROR--记录有可能产生的错误号 end --判断事务的提交或者回滚 if(@error<>0) begin rollbacktransaction return-1--设置操作结果错误标识 end else begin committransaction return1--操作成功的标识 end go
希望本文所述对大家学习数据库操作有所帮助。