SQLServer存储过程中事务如何使用
SQLServer存储过程中事务如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
具体代码如下
createprocusp_Stock@GoodsIdint,@Numberint,@StockPricemoney,@SupplierIdint,@EmpIdint,@StockUnitvarchar(50),@StockDatedatetime,@TotalMoneymoney,@ActMoneymoney,@baseIdint,@Descriptionnvarchar(255)asdeclare@errorint=0--事务中操作的错误记录--开启事务begintransaction--实现进货信息的添加insertintoStockInfovalues(@GoodsId,@Number,@StockPrice,@SupplierId,@EmpId,@StockUnit,@StockDate,@TotalMoney,@ActMoney,DEFAULT,@Description,@baseId)set@error+=@@ERROR--记录有可能产生的错误号--获取当前进货信息的标识列--判断当前商品有没有进货记录ifexists(select*fromdbo.InventoryInfowheregoodid=@GoodsId)--说明记录存在,直接修改库存数量beginupdatedbo.InventoryInfosetGNumber=GNumber+@Number,TotalMoney+=@TotalMoneywheregoodid=@GoodsIdset@error+=@@ERROR--记录有可能产生的错误号endelse--这个商品从来没有过进货记录,那么就应该添加新的存在信息begindeclare@GWarningNumint--此商品的预警数量--获取预警数量set@GWarningNum=(selectWaringNumfromdbo.GoodsInfowhereGId=@GoodsId)insertintodbo.InventoryInfovalues(@GoodsId,@Number,@baseId,@GWarningNum,@TotalMoney,'第一次进货',default)set@error+=@@ERROR--记录有可能产生的错误号end--判断事务的提交或者回滚if(@error<>0)beginrollbacktransactionreturn-1--设置操作结果错误标识endelsebegincommittransactionreturn1--操作成功的标识endgo
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。