1. -- =============================================
  2. -- Author: jf_ou
  3. -- Create date: 2017-08-22
  4. -- Description: 事务的使用1
  5. -- =============================================
  6. CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
  7. AS
  8. BEGIN
  9. --设置整体提交或整体回滚BEGIN
  10. SET XACT_ABORT ON
  11. DECLARE @ERROR INT = 0;
  12. BEGIN TRANSACTION
  13. IF(@ERROR = 1)
  14. BEGIN
  15. SELECT 'ERROR';
  16. --ROLLBACK后面必须加RETURN;且ROLLBACK必须在前面
  17. ROLLBACK TRANSACTION
  18. RETURN
  19. END
  20. ELSE
  21. BEGIN
  22. SELECT 'DOME'
  23. END
  24. IF(@@ERROR <> 0)
  25. BEGIN
  26. ROLLBACK TRANSACTION
  27. END
  28. COMMIT TRANSACTION
  29.  
  30. --设置整体提交或整体回滚END
  31. SET XACT_ABORT OFF
  32. END
  33. GO
  1. -- =============================================
  2. -- Author: jf_ou
  3. -- Create date: 2017-06-19
  4. -- Description: 事务的使用2
  5. -- =============================================
  6. CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
  7. <@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
  8. <@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
  9. AS
  10. BEGIN
  11. --设置整体提交或整体回滚BEGIN
  12. SET XACT_ABORT ON
  13.  
  14. DECLARE @ERROR INT = 0;
  15. BEGIN TRY
  16. BEGIN TRANSACTION
  17. --核心代码
  18. IF(@ERROR = 1)
  19. BEGIN
  20. SELECT 'ERROR';
  21. --ROLLBACK后面必须加RETURN;且ROLLBACK必须在前面
  22. ROLLBACK TRANSACTION
  23. RETURN
  24. END
  25. ELSE
  26. BEGIN
  27. SELECT 'DOME'
  28. END
  29. COMMIT TRANSACTION
  30. END TRY
  31. BEGIN CATCH
  32. Rollback TRANSACTION
  33. --插入轨迹语句
  34. END CATCH
  35.  
  36. --设置整体提交或整体回滚END
  37. SET XACT_ABORT OFF
  38. END
  39. GO

SQL事务在存储过程的应用的更多相关文章

  1. SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过

    SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过     存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...

  2. petapoco定制,比较SQL事务,存储过程,分布式事务(MSDTC)的区别和场景

    使用分布式事务时 就锁死了,而且是只锁编辑的行 使用.netSQL事务一定要执行了一个CUD的SQL才会锁死,而且也是锁行,但是也锁读的行 .netSQL事务要在这里才锁死 结论,对于产品要求细粒度的 ...

  3. SQL Server中带事务的存储过程简单举例

    先来看一个概念: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行.那么在存储过程里添加事务,则可以保证该事务里的所 ...

  4. SQL Server 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过

    存储过程 创建存储过程 use pubs --pubs为数据库 go create procedure MyPRO --procedure为创建存储过程关键字,也可以简写proc,MyPRO为存储过程 ...

  5. SQL学习笔记七之MySQL视图、触发器、事务、存储过程、函数

    阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名 ...

  6. Python 43 视图 、sql注入问题 、事务 、存储过程

    一:视图 1 视图是什么? 本质是一张虚拟的表,他的数据来自select语句 创建视图 create view test_view select *from t1; 2 有什么用? 原表安全 案例: ...

  7. Mysql - 游标/动态sql/事务

    游标这个在我目前的项目里面用的还不多, 但是其功能还是很强大的. 动态sql以前都没用过, 是跟着富士康(不是张全蛋的富土康哦)过来的同事学的. 还是挺好用的. 我的数据库方面, 跟他学了不少. 在此 ...

  8. sql事务(Transaction)用法介绍及回滚实例

    sql事务(Transaction)用法介绍及回滚实例 事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务, S ...

  9. sql事务的调用

    一.数据库的SQL USE [Text]GO/****** Object: StoredProcedure [dbo].[mon] Script Date: 2017-01-03 15:59:28 * ...

随机推荐

  1. Jmeter测试计划要素

    Jmeter中一个脚本就是一个测试计划,也是一个管理单元.Jmeter的请求模拟与并发数(设置线程数,一个线程即代表一个虚拟用户)设置都在脚本文件中一起设置. 测试计划要素如下: 1.脚本中测试计划只 ...

  2. C的Define

    #define Conn(x,y) x##y  //表示x连接y #define ToChar(x) #@x //给x加上单引号 #define ToString(x) #x  //给x加双引号 #d ...

  3. 解决git commit 遇到datached HEAD问题

    git detached HEAD 你可以认为 HEAD(大写)是”current branch”(当下的分支).当你用git checkout切换分支的时候,HEAD 修订版本重新指向新的分支. 有 ...

  4. JS: RegExp(正则表达式)

    RegExp (包含ES2018新特性) 注意:本次所有代码都仅在Chrome 70中进行测试 正则表达式是什么? 正则表达式是用于匹配字符串中字符组合的模式.(mdn) 简单来说,正则表达式是用来提 ...

  5. Jasmine入门(下)

    上一篇 Jasmine入门(上) 介绍了Jasmine以及一些基本的用法,本篇我们继续研究Jasmine的其他一些特性及其用法(注:本篇中的例子均来自于官方文档). Spy Spy用来追踪函数的调用历 ...

  6. AngularJS入门之动画

    AngularJS中ngAnimate模块支持动画效果,但是ngAnimate模块并未包含在AngularJS核心库中,因此需要使用ngAnimate需要在定义Module时声明对其的引用. Angu ...

  7. Lingo 做线性规划 - Financial Applications

    Reference: <An Introduction to Management Science Quantitative Approaches to Decision Making, Rev ...

  8. Django中url的反向查询

    明确几个概念: application namespace:   正在部署的app的名称,一个app的多个实例应该具有相同的application namespace.   可以通过在URLconf模 ...

  9. [webrtc] rtcp模块中rtt时间计算

    RTT指 round-trip time,即计算AB两端的往返时延 这里可以分成两个问题: 如何在A端估算A和B之间的RTT时间? 如何在B端估算A和B之间的RTT时间? 本文参考资料:rfc 355 ...

  10. VUE之文字跑马灯效果

    VUE之文字跑马灯效果 1.效果演示 2.相关代码 <!DOCTYPE html> <html lang="en"> <head> <me ...