转自https://www.cnblogs.com/delphinet/archive/2010/08/17/1801424.html

第一种:

 
declare   @iErrorCount   int 
set @iErrorCount = 0
begin tran Tran1
   insert into t1(Id, c1) values(1,'1')
    set @iErrorCount=@iErrorCount+@@error    insert into t1(Id, c1) values('XX2','2')
    set @iErrorCount=@iErrorCount+@@error if @iErrorCount=0 
begin   
    COMMIT TRAN Tran1  --执行事务
end 
else   
begin   
    ROLLBACK TRAN Tran1  --回滚事务
end
 

第二种:

 
Begin Try
    Begin Tran Tran1
        insert into t1(Id, c1) values(1,'1')
        insert into t1(Id, c1) values('XX2','2')  --此句产生错误
    COMMIT TRAN Tran1
END Try
Begin Catch 
    raiserror 50005N'出错了' 
    ROLLBACK TRAN Tran1     ---出错后调用回滚
END Catch 
 

第三种:

SET XACT_ABORT ON ----语句产生运行时错误,则整个事务将终止并回滚。 
Begin Tran
    INSERT INTO t1(Id, c1) VALUES(1,'1')
    INSERT INTO t1(Id, c1) VALUES('XX2','2') --此句产生错误时,就会回滚整个事务
Commit Tran

SQL 事物回滚的更多相关文章

  1. 复习课程jdbc:使用配置文件properties进行连接数据库,数据库存取图片,批处理,时间戳,事物回滚等等

    使用配置文件properties进行连接数据库 首先创建一个file自定义文件名,但是后缀名必须改为.properties(不分大小写):如config.properties: 然后双击config. ...

  2. C#里面的事物回滚,解决同步数据插入时出现重复数据

    什么是事物回滚: 举个栗子,你在你家的银行分行取钱,取完钱数据要同步,而且可能每个分行都有一个存储这些数据的数据库,分行的这些 存取的记录都需要实时同步,如果你取完500刚好断电了,好嘛,分行可能刚记 ...

  3. msql,触发器无事物回滚,插入之前满足条件再插入

    很少写mysql的触发器和存储过程,由于需要需要做一个很小的判断,要用到触发器,要达到的效果就是,插入之前判断是否满足条件如果不满足就不插入 如果用sqlserver 或者orcale 就很简单,按s ...

  4. 【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)

    1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...

  5. Spring aop切面插入事物回滚

    <!-- tx标签配置 事物--> <tx:advice id="txadvice" transaction-manager="transactionM ...

  6. springboot事物回滚

    要添加事物 必须在方法上添加 @Transactional 注解 如果需要事物回滚有两个条件 1.方法中有异常或者主动抛异常 2.主动去回滚 TransactionAspectSupport.curr ...

  7. peewee 事物 回滚

    peewee 事物 回滚 #!/usr/bin/env python # coding=utf-8 from peewee import * db = MySQLDatabase(host='123. ...

  8. Spring-Java事物回滚失效处理

    spring-Java事物回滚失效处理最近在做项目中,无意间发现有个类在抛事物回滚操作,数据也正常的插入到数据库当中了,于是仔细查看看一下具体原因. 一切还是要从Java的检查型异常和非检查型异常说起 ...

  9. django事物回滚

    往数据库写入数据时,不经意间就会写入不完整的数据,我们称之为脏数据.事务管理(transaction)可以防止这种情况发生.事务管理一旦检测到写入异常,会执行回滚操作,即要么写入完整的数据,要么不写入 ...

随机推荐

  1. strTemp.Format ("%.*lf",3,600.0);

    CString strTemp; strTemp.Format ("%.*lf",3,600.0); 这句话的含义?求指教   优质解答 这就是一个格式化输出,分号之前的CStri ...

  2. css3文字与字体的相关样式

    给文字添加阴影——text-shadow属性 text-shadow属性是css2中定义的,在css2.1中删除了,在css3中恢复text-shadow:length length length c ...

  3. Elasticsearch中提升大文件检索性能的一些总结

       笔者在实际生产环境中经常遇到一些大文件的检索,例如一些书籍内容,PDF文件等.今天这篇博客主要来探讨下如何提升ES在检索大文件的一些性能,经验有限,算是一个小小的总结吧! 1.大文件是多大? E ...

  4. jquery获取元素对应高度

    https://www.cnblogs.com/sntetwt/p/3823592.html 获取点击元素距离页面的高度 $(select).offset().top - $(document).sc ...

  5. 字节码操作-Javaassist

    下面就是一个具体的demo来介绍利用Javaassist库来创建类,不过要先在工程里面导入Javaassist的架包, package JavaAasist; import java.lang.ref ...

  6. 仿iPhone、iPad界面滑屏切换

    <!DOCTYPE html> <html lange='en'> <head> <meta charset='UTF-8'> <title> ...

  7. JAVA接口详细讲解

    接口 接口的概念  接口代表的是一个功能的集合,定义规范,所有的方法都是抽像方法,这是一种思想是一种规则,将这个种规则称为接口. 接口的定义 使用关键字 interface 叫做接口 修饰符 inte ...

  8. 如何在 Laravel 中 “规范” 的开发验证码发送功能

    什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).Thin ...

  9. Maven打包Spark程序Pom配置

    scala和java混合的spark程序之前使用其他配置始终有报找不到包的情况,尝试了一下如下配置可以打包成功.<build> <pluginManagement> <p ...

  10. EOS Bios Boot Sequence

    EOS version:v1.0.5 Date:2018-06-19 Host: Centos 7 Reference :https://github.com/EOSIO/eos/wiki/Tutor ...