`

SQL事务回滚 写法

    博客分类:
  • SQL
 
阅读更多

以下是SQL 回滚的语句:
方案一:
SET   XACT_ABORT   ON--如果产生错误自动回滚
GO
BEGIN   TRAN
INSERT   INTO   A   VALUES   (4)
INSERT   INTO   B   VALUES   (5)
COMMIT   TRAN
也 可以使用_ConnectionPtr 对象的方法: BeginTrans、CommitTrans、RollbackTrans,使用该系列函数判断 并回滚。一旦调用了 BeginTrans 方法, 在调用 CommitTrans 或 RollbackTrans 结束事务之前, 数据库将不再立 即提交所作的任何更改。
方案二
BEGIN TRANSACTION
INSERT INTO A   values  (4)   ----- 该表含有触发器,UPDATE其他表
IF @@error <> 0  --发生错误
   BEGIN
     ROLLBACK TRANSACTION
         
   END
ELSE
   BEGIN
     COMMIT TRANSACTION
       
   END




SET   XACT_ABORT
指定当   Transact-SQL   语句产生运行时错误时,Microsoft&reg;   SQL   Server&#8482;   是否自动回滚当前事务。

语法

SET   XACT_ABORT   {   ON   |   OFF   }

注释

当   SET   XACT_ABORT   为   ON   时,如果   Transact-SQL   语句产生运行时错误,整个事务将终止并回滚。为   OFF   时,只回滚产生错误的   Transact-SQL   语句,而事务将继续进行处理。编译错误(如语法错误)不受   SET   XACT_ABORT   的影响。

对于大多数   OLE   DB   提供程序(包括   SQL   Server),隐性或显式事务中的数据修改语句必须将   XACT_ABORT   设置为   ON。唯一不需要该选项的情况是提供程序支持嵌套事务时。有关更多信息,请参见分布式查询和分布式事务。  


SET   XACT_ABORT   的设置是在执行或运行时设置,而不是在分析时设置

分享到:
评论

相关推荐

    SQL2000 事务回滚问题探讨

    本文将深入探讨SQL2000中关于事务回滚的问题,特别是面对严重错误时的行为。 首先,我们需要理解`SET XACT_ABORT ON`这个选项的作用。它是一个T-SQL语句,用于设置一个会话或批处理中的事务处理行为。当`XACT_ABORT...

    多行SQL导入ACCESS事务的代码写法

    ### 多行SQL导入ACCESS事务的代码写法 #### 知识点概述 本文档将详细介绍如何使用ADO(ActiveX Data Objects)技术结合事务处理功能,实现多行数据的高效导入到Microsoft Access数据库中的方法。在开发过程中,...

    SQL Server存储过程的写法以及应用

    以上示例展示了如何在存储过程中处理错误,并使用事务回滚来保持数据一致性。 #### 总结 通过上述示例,我们可以看到 SQL Server 存储过程的强大功能及其应用场景。合理的利用存储过程不仅可以提高系统的性能和...

    JDBC简单写法JDBC简单写法JDBC简单写法

    6. **异常处理**:在DAO方法中,应该遵循良好的异常处理策略,通常包括事务回滚、记录日志和抛出异常。当捕获到异常时,应使用`rollback()`回滚事务,记录详细的错误日志,并根据情况决定是否需要向上层抛出异常。 ...

    DB2_SQL课件

    7. DB2 SQL的进阶及优化:这部分内容通常会介绍如何通过各种方法和技巧来优化SQL语句的性能,例如,合理利用索引、调整表的设计、改进查询语句的写法等。这些优化策略对提高数据库的运行效率有着至关重要的作用。 ...

    如何优化sql语句.pdf

    默认情况下,单个SQL语句即是一个事务,但在需要确保一组操作全部成功或全部回滚的情况下,显式使用`BEGIN TRAN`来开启事务更为合适。这样可以确保多个操作作为一个整体执行,提高数据的完整性。然而,过度使用事务...

    SqlServer高级命令

    - `TRUNCATE TABLE` 不支持回滚事务,一旦执行即无法撤销。 - 该命令不会触发定义在表上的任何删除触发器。 #### 2. ALTER TABLE 命令 - **概述**:`ALTER TABLE` 命令用于修改现有表的结构,包括添加、删除列、...

    spring注入文件写法

    综上所述,Spring注入文件的写法涉及了数据源、Hibernate集成、事务管理和DAO的声明及配置。通过这种方式,Spring能够提供一个灵活且强大的基础设施,支持数据库操作和事务管理,同时保持代码的整洁和模块化。

    测试数据生成1万条ticket的sql

    这将决定SQL脚本的具体写法。 4. **性能优化**:一次性插入大量数据可能会对数据库性能造成影响。因此,可能需要批量插入,比如一次插入多行,以减少数据库事务的开销。 5. **工具的使用**:除了手动编写SQL脚本,...

    从SQL语句的角度提高数据库的访问性能.docx

    例如,在进行跨表的插入、删除或更新操作时,可以使用`BEGIN TRAN`明确界定事务边界,并在事务完成后及时提交或回滚。 通过上述方法,可以有效提升数据库的访问性能,确保系统运行更加高效、稳定。

    oracle SQL性能优化

    但是,TRUNCATE不支持事务回滚,且不能配合WHERE子句使用。 #### 十、合理使用COMMIT 在事务处理中,适时使用COMMIT可以释放锁资源,减少日志缓冲区占用,并提高系统整体响应速度。但是,过度频繁的COMMIT也可能...

    oracle sql编程参考

    5. **事务控制语言(TCL)**:用于管理事务的开始、提交和回滚等操作。 #### 三、常用 SQL 语句写法 ##### 1. SELECT 语句 SELECT 语句是最常用的 SQL 查询语句,用于从数据库中检索数据。 - **基本语法**: ```...

    SQL 优化原则

     在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前...

    ORACLE SQL性能调优分析.pdf

    Rollback Segments则是用于回滚事务,它们的配置也会影响数据库的性能。 其次,对于操作计划的制定和理解,这是影响SQL性能的关键环节。一条SQL语句在执行前,DBMS会执行多个步骤,包括SQL语法检查、SQL语义研究、...

    大家来进行SQL优化

    `,这种写法只返回所需的数据列,减少了网络传输的数据量。 #### 4. 使用合适的函数 某些SQL函数可能会影响查询性能,尤其是在大量数据上使用时。因此,在选择函数时应考虑其对性能的影响。例如,使用`SUBSTR`或`...

    SQLServer批量更新两个关联表数据的方法

    1. **事务管理**:由于批量更新涉及到多行操作,建议使用`BEGIN TRANSACTION`、`COMMIT`或`ROLLBACK`来确保数据的一致性,防止因部分更新失败导致数据不一致。 2. **索引优化**:确保关联的字段有合适的索引,特别...

    Linq to sql

    查询表达式类似SQL的写法,而方法链则利用一系列查询方法如Where、Select、OrderBy等组合完成查询。 4. **匿名方法**:在提供的`DemoAnonymousMethod`示例中,可能会涉及如何在`Linq to SQL`查询中使用匿名方法。...

    Oracle函数_JDBC常用写法

    例如,使用`Connection.setAutoCommit(false)`开启手动提交事务,当所有操作成功后再调用`Connection.commit()`提交,若出现错误则调用`Connection.rollback()`回滚。 总的来说,掌握Oracle的常用函数和JDBC的基本...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

Global site tag (gtag.js) - Google Analytics