SqlServer存储过程中使用事务,示例模版[数据库教程]

database

createproc pro_GetProTrans

@GoodsIdint,

@Numberint,

@StockPricemoney,

@SupplierIdint,

@EmpIdint,

@StockUnitvarchar(50),

@StockDatedatetime,

@TotalMoneymoney ,

@ActMoneymoney ,

@baseIdint,

@Descriptionnvarchar(255)

as

declare@errorint=0--事务中操作的错误记录

--开启事务

begintransaction

--实现进货信息的添加

insertinto StockInfo values(@GoodsId, @Number, @StockPrice, @SupplierId, @EmpId, @StockUnit, @StockDate, @TotalMoney, @ActMoney,DEFAULT,@Description, @baseId)

set@error+=@@ERROR--记录有可能产生的错误号

--获取当前进货信息的标识列

--判断当前商品有没有进货记录

ifexists (select*from dbo.InventoryInfo where goodid=@GoodsId) --说明记录存在,直接修改库存数量

begin

update dbo.InventoryInfo set GNumber=GNumber+@Number,TotalMoney+=@TotalMoneywhere goodid=@GoodsId

set@error+=@@ERROR--记录有可能产生的错误号

end

else--这个商品从来没有过进货记录,那么就应该添加新的存在信息

begin

declare@GWarningNumint--此商品的预警数量

--获取预警数量

set@GWarningNum=(select WaringNum from dbo.GoodsInfo where GId=@GoodsId)

insertinto dbo.InventoryInfo values(@GoodsId,@Number,@baseId,@GWarningNum,@TotalMoney,第一次进货,default)

set@error+=@@ERROR--记录有可能产生的错误号

end

--判断事务的提交或者回滚

if(@error<>0)

begin

rollbacktransaction

return-1--设置操作结果错误标识

end

else

begin

committransaction

return1--操作成功的标识

end

go

 

SqlServer存储过程中使用事务,示例模版

原文:https://www.cnblogs.com/qzqdy/p/15077962.html

以上是 SqlServer存储过程中使用事务,示例模版[数据库教程] 的全部内容, 来源链接: utcz.com/z/535801.html

回到顶部