SQL Server嵌套事务是否可以部分提交?(不可以)
来源:互联网 发布:2016微商和淘宝 编辑:程序博客网 时间:2024/05/05 03:03
SQL Server中嵌套事务是否可以部分提交?
答案是:不可以
具体原因,参照以下说明:
https://msdn.microsoft.com/zh-cn/library/ms190295(v=sql.120).aspx
COMMIT TRANSACTION (Transact-SQL)
标志一个成功的隐性事务或显式事务的结束。 如果 @@TRANCOUNT 为 1,COMMIT TRANSACTION 使得自从事务开始以来所执行的所有数据修改成为数据库的永久部分,释放事务所占用的资源,并将 @@TRANCOUNT 减少到 0。 如果 @@TRANCOUNT 大于 1,则 COMMIT TRANSACTION 使 @@TRANCOUNT 按 1 递减并且事务将保持活动状态。
适用范围:SQL Server(SQL Server 2008 至当前版本),Azure SQL Database(初始版本至当前版本)。
Transact-SQL 语法约定
语法
COMMIT [ { TRAN | TRANSACTION } [ transaction_name | @tran_name_variable ] ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ][ ; ]
参数
注释
仅当事务引用的所有数据在逻辑上都正确时,Transact-SQL 程序员才应发出 COMMIT TRANSACTION 命令。
如果所提交的事务是 Transact-SQL 分布式事务,COMMIT TRANSACTION 将触发 MS DTC 使用两阶段提交协议,以便提交所有涉及该事务的服务器。 如果本地事务跨越同一数据库引擎实例上的两个或多个数据库,则该实例将使用内部的两阶段提交来提交所有涉及该事务的数据库。
当在嵌套事务中使用时,内部事务的提交并不释放资源或使其修改成为永久修改。 只有在提交了外部事务时,数据修改才具有永久性,而且资源才会被释放。 当 @@TRANCOUNT 大于 1 时,每发出一个 COMMIT TRANSACTION 命令只会使 @@TRANCOUNT 按 1 递减。 当 @@TRANCOUNT 最终递减为 0 时,将提交整个外部事务。 因为 transaction_name 被数据库引擎忽略,所以当存在显著内部事务时,发出一个引用外部事务名称的 COMMIT TRANSACTION 只会使 @@TRANCOUNT 按 1 递减。
当 @@TRANCOUNT 为 0 时发出 COMMIT TRANSACTION 将会导致出现错误;因为没有相应的 BEGIN TRANSACTION。
不能在发出一个 COMMIT TRANSACTION 语句之后回滚事务,因为数据修改已经成为数据库的一个永久部分。
仅当事务计数在语句开始处为 0 时,数据库引擎才会增加语句内的事务计数。
transaction_name 参数仅是帮助阅读的方法,可帮助程序员确保提交的正确号码被编码以便将 @@TRANCOUNT 减少到 0,从而提交外部事务。
- SQL Server嵌套事务是否可以部分提交?(不可以)
- Sql Server 事务嵌套
- SQL Server嵌套事务探讨(转载)
- sql server中嵌套事务
- [SQL Server]嵌套事务与分布式事务
- ASP不可以将汉字写入SQL server,但是英文的就可以写
- SQL Server 中的嵌套事务与@@TranCount(转)
- SQL Server 中的嵌套事务与@@TranCount(转)
- SQL Server嵌套事务探讨 (转贴)
- 设置viewpager(可以/不可以)滑动
- SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因
- SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因
- SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因
- SQL SERVER 2000 嵌套 存储过程 事务 回滚
- 不知道可以不可以
- 写一个函数,判断一个int型的正整数是否是2的幂,即是否可以表示成2^X的形式(不可以用循环)
- 写一个函数,判断一个int型的正整数是否是2的幂,即是否可以表示成2^X的形式(不可以用循环)
- SQL SERVER的事务未提交与死锁问题。
- 在视频中实时地显示帧率
- Codeforces Round #339 (Div. 2) C.cpp
- RTMP直播应用与延时分析
- 集训队专题(1)1007 Hat’s Words
- ASP.NET 5 为NPM,BOWER设置代理服务器
- SQL Server嵌套事务是否可以部分提交?(不可以)
- 基于mysql中一些易混淆知识点总结
- 动态获取UITextView 高度
- java中hashcode()和equals()的详解
- HDOJ 1251 统计难题(字典树)
- 初识WTL
- highchart数据量大优化出图速度
- Apache POI使用详解(excel为主)
- 添加每个cell出现时的动画