`
Felix韩
  • 浏览: 16773 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
社区版块
存档分类
最新评论

网上看到的SET XACT_ABORT的用法~

    博客分类:
  • SQL
阅读更多

指定当 Transact-SQL 语句产生运行时错误时,Microsoft® SQL Server™ 是否自动回滚当前事务。

语法
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 的设置是在执行或运行时设置,而不是在分析时设置。

示例
下例导致在含有其它 Transact-SQL 语句的事务中发生违反外键错误。在第一个语句集中产生错误,但其它语句均成功执行且事务成功提交。在第二个语句集中,SET XACT_ABORT 设置为 ON。这导致语句错误使批处理终止,并使事务回滚。

 

CREATE TABLE t1 (a int PRIMARY KEY)
CREATE TABLE t2 (a int REFERENCES t1(a))
GO
INSERT INTO t1 VALUES (1)
INSERT INTO t1 VALUES (3)
INSERT INTO t1 VALUES (4)
INSERT INTO t1 VALUES (6)
GO
SET XACT_ABORT OFF
GO
BEGIN TRAN
INSERT INTO t2 VALUES (1)
INSERT INTO t2 VALUES (2/* Foreign key error */
INSERT INTO t2 VALUES (3)
COMMIT TRAN
GO

SET XACT_ABORT ON
GO

BEGIN TRAN
INSERT INTO t2 VALUES (4)
INSERT INTO t2 VALUES (5/* Foreign key error */
INSERT INTO t2 VALUES (6)
COMMIT TRAN
GO

/* Select shows only keys 1 and 3 added. 
   Key 2 insert failed and was rolled back, but
   XACT_ABORT was OFF and rest of transaction
   succeeded.
   Key 5 insert error with XACT_ABORT ON caused
   all of the second transaction to roll back. 

*/


SELECT * 
FROM t2
GO

DROP TABLE t2
DROP TABLE t1
GO

分享到:
评论

相关推荐

    SQL事务设置SET XACT_ABORT后正确回滚

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

    SQLSERVER事务和XACT_ABORT专题

    该PPT详述XACT_ABORT为ON和OFF的情况,讲解事务和批操作的区别

    SQL2000 事务回滚问题探讨

    代码如下: create procedure test_tran as set xact_abort on —–用@@error判断,对于严重的错误,系统根本就不会执行随后对@@error的判断,会直接终止执行。所以设置set xact_abort on 是必要的 BEGIN TRANSACTION...

    浅析SQL Server中包含事务的存储过程

    先来看一个概念:  数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行... --使用存储过程执行事务需要开启XACT_ABORT参数(默认为OFF)  delete from table1 where name='' --删除数据sql1  begin tra

    sql2000绿色免安装版

    SQLserver2000绿色版,有了它可以随时在一个没有安装数据库环境的机子上进行数据库操作。

    DEC2006-XACT-x86.cab

    DEC2006_XACT_x86.cab

    浅析SQL存储过程和事务处理

    在数据库编程中,事务是经常需要用到的技术,在.net平台上,事务处理是非常好用的,但是在Sql Server数据库的存储过程中如何使用...BEGIN TRAN — 显示定义并开始一个事务SET XACT_ABORT ON — 表示遇到错误立即回滚 INSERT

    DEC2006-XACT-x64.cab

    DEC2006_XACT_x64.cab

    SQL Server事务和并发控制.ppt

    运行时,如果批处理或事务中某个操作违反约束,系统默认只回退到产生错误的语句。通过打开XACT_ABORT开关,可使系统自动回滚产生该错误的当前事务。

    DX9.0c_X86_最终版(网吧装上这个游戏基本没问题的了)

    DX9.0c_X86_最终版(网吧装上这个游戏基本没问题的了)

    SQLserver存储过程异常处理.txt

    SQLserver存储过程异常处理

    IP-XACT standard

    IP-XACT作为IC领域IP专业化及SOC的广泛应用开发,即将成为基础标准

    pg-monitor-sql:PostrgreSQL 监控查询

    xact_commit, xact_rollback, blks_read, blks_hit, blks_hit::float / ( blks_hit + blks_read ) * 100.0 as cache_hit_ratio, tup_fetched, tup_returned, tup_inserted, tup_updated, tup_deleted FROM...

    导入Microsoft分布式事务处理协调器MSDTC失败的解决方案

    大家跨服务器加事务的时候经常遇到以下报错:导入Microsoft分布式事务处理协调器MSDTC,网上大部分教程都是服务器配置msdtc,但是发现两个服务器都配置之后还是不行,可参照此图片解决,已验证过,不好用找我,最低...

    微软内部资料-SQL性能优化3

    A set of transactions can run concurrently if their outputs are disjoint from the union of one another’s input and output sets. For example, if T1 writes some object that is in T2’s input or output ...

    xAct:此存储库构建用于培训Wolfram Mathematica,xAct中最重要的GR软件包之一

    xAct是使用Wolfram语言的张量计算机代数的免费软件包套件。 xAct实现了用于快速处理索引的最新算法,并已根据当前的广义相对论几何方法进行了建模。 它是高度可编程和可配置的。 自2004年3月首次公开发布以来,xAct...

    IEEE 1685-2009 (IP-XACT 2009)

    IEEE 1685-2009 IEEE Standard For IP-XACT, Standard Structure For Packaging, Integrating, And Reusing IP Within Tool Flows IEEE标准,提供芯片工具流程打包,整合,和IP复用

    xPrint:xAct的xPrint

    最先进的调色板接口与Mathematica软件包的xAct套件 通过下拉菜单选择流形,张量,索引和导数运算符 实时所见即所得张量对象构造 VBundle约束的菜单驱动的索引选择 摘要和b和c索引 即时语法检查 一键式将格式化的...

    IEEE Std 1685-2014 IP-XACT

    IEEE Std 1685-2014 IP-XACT, Standard Structure for Packaging, Integrating, and Reusing IP within Tool Flows -完整英文电子版(508页)

    pyIPXACT:使用Python的IEEE 1685-2014的IP-XACT DOM

    pyIPXACT-使用Python的的IP-XACT DOM。产品特点为生成IP-XACT文件IP-XACT目录IP-XACT资源标准: 架构文件: GitHub上的 贡献者(维护者)执照该库根据SPDX许可证标识符:Apache-2.0

Global site tag (gtag.js) - Google Analytics