SqlServer存储过程中使用事务,示例模版「终于解决」

SqlServer存储过程中使用事务,示例模版「终于解决」create proc pro_GetProTrans @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId i…

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

create proc pro_GetProTrans
@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存储过程中使用事务,示例模版

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5991.html

(0)
上一篇 2023-04-19 17:00
下一篇 2023-04-19

相关推荐

  • Python工程师

    Python工程师Python是一种高级编程语言,它能够让编写代码变得更简单、更直观。Python被广泛运用在大数据处理、科学计算、网站开发、教育等领域。由于其易学易用、高效性及强大的生态系统,Python成为了计算机领域中最热门的编程语言之一。

    2024-05-04
    67
  • MySQL学习笔记(4):数据类型「建议收藏」

    MySQL学习笔记(4):数据类型「建议收藏」本文更新于2019-06-19,使用MySQL 5.7,操作系统为Deepin 15.4。 数值类型 整数类型 type[(m)] [UNSIGNED] [ZEROFILL] [AUTO_INCREM

    2023-03-13
    147
  • SQL语句的整合[亲测有效]

    SQL语句的整合[亲测有效]# 基础语法 https://blog.csdn.net/m0_37989980/article/details/103413942 CRUD 提供给数据库管理员的基本操作,CRUD(Create,

    2023-05-19
    157
  • 使用Flask中的url_for函数

    使用Flask中的url_for函数当我们在开发Web应用时,页面之间需要相互调用,这时候就需要用到URL路由。Flask是一款轻量级的Web应用框架,使用Python语言编写。在Flask中,像其他Web框架一样,我们可以使用URL路由来定位和处理用户的请求。而在Flask中,使用url_for函数来构建url路径更加方便,本文将介绍如何使用Flask中的url_for函数。

    2024-08-26
    36
  • 初学Redis(一)–介绍

    初学Redis(一)–介绍1. 什么是NoSql NoSQL(Not Only SQL):不仅仅是SQL NoSQL是一项全新的数据库理念 NoSQL属于非关系型的数据库,没有表的概念,目的只是存储数据。 2. 为什么要使用…

    2023-02-22
    170
  • 治理世界的Python列表

    治理世界的Python列表Python是一种广泛使用的高级编程语言,列表是Python中的一种常见的数据类型。列表是一个有序的可变序列,可以存储任何类型的对象,包括数字、字符串和其他列表等。

    2024-01-12
    121
  • 简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别_m序列的产生方法

    简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别_m序列的产生方法[toc] 背景 应用端需要生成依次递增的序列来做流水序号等,方案有1、redis /MySQL SEQUENCE引擎生成序列;2、MySQL中myisam表 replace into方式;3、MyS

    2023-02-12
    151
  • Python使用log10()函数对数值100进行对数变换

    Python使用log10()函数对数值100进行对数变换log10()函数是Python内置的数学函数之一,用于返回数字的以10为底的对数,即log10(x)返回的是log(x)以10为底的对数。在Python中,该函数的使用方法为:import math后直接调用math.log10(x)即可,其中x代表需要进行对数变换的数值。需要注意的是,在使用log10()函数时,x的取值不能为0或负数,否则会报错。

    2024-01-07
    107

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注