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

 更新时间:2015年12月13日 14:53:02   作者:iceKnight  
这篇文章主要介绍了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

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

相关文章

  • 学会sql数据库关系图(Petshop)

    学会sql数据库关系图(Petshop)

    花了这么多时间最终还是回到了数据库,但是数据库中一张一张的表格找不到脚本,也不是自己设计的数据库,完全没有一点头绪,后来突然想起来sql有个数据库关系图,可以很快的适合数据库程序员很快的掌握数据库表之间的关系
    2012-08-08
  • sqlserver 多表关联时在where语句中慎用trim()方法

    sqlserver 多表关联时在where语句中慎用trim()方法

    最近做的一个项目由于前期数据库设计不合理,导致多表关联的主外键长度设计不一致,以致过长主外键中过长的字段在填入相同字段时,多余部分被填入空字符。迫于无奈,就在多表关联的where语句中使用了trim()方法。
    2009-09-09
  • SQL Server 索引结构及其使用(二) 改善SQL语句

    SQL Server 索引结构及其使用(二) 改善SQL语句

    很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。
    2009-04-04
  • sql的临时表使用小结

    sql的临时表使用小结

    这篇文章主要介绍了sql的临时表使用小结,需要的朋友可以参考下
    2015-11-11
  • 理解Sql Server中的聚集索引

    理解Sql Server中的聚集索引

    这篇文章主要介绍了理解Sql Server中的聚集索引,本文讲解了聚集索引的作用、聚集索引的运行原理等内容,需要的朋友可以参考下
    2015-02-02
  • SQL SERVER自动备份以及自动清除设置图文教程

    SQL SERVER自动备份以及自动清除设置图文教程

    作为一名DBA、运维人员、实施人员亦或是测试人员必须要学会如何备份以及清理备份文件,自动清理备份文件,这篇文章主要给大家介绍了关于SQL SERVER自动备份以及自动清除设置的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • 新手SqlServer数据库dba需要注意的一些小细节

    新手SqlServer数据库dba需要注意的一些小细节

    这篇文章主要介绍了新手SqlServer数据库dba需要注意的一些小细节,本文讲解了15个小细节、小技巧及需要注意的地方,需要的朋友可以参考下
    2015-02-02
  • SQL 实用语句

    SQL 实用语句

    以下的sql语句都以上面表mytable为准
    2009-06-06
  • SQL Server之JSON 函数详解

    SQL Server之JSON 函数详解

    本篇文件将结合MSND简要分析Sqlserver中JSON函数,主要包括ISJSON,JSON_VALUE,JSON_MODIFY,JSON_QUERY,需要的朋友可以参考下
    2019-11-11
  • SQL Server新特性SequenceNumber用法介绍

    SQL Server新特性SequenceNumber用法介绍

    这篇文章介绍了SQL Server新特性SequenceNumber的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02

最新评论