BEGIN TRAN @@TRANCOUNT+1
COMMIT TRAN @@TRANCOUNT-1
ROLLBACK TRAN 使@@TRANCOUNT回归0
SAVE TRAN 不影响@@TRANCOUNT
举例
1) SELECT '事务处理前', @@TRANCOUNT --值为 0
BEGIN TRAN
SELECT '第一个事务', @@TRANCOUNT --值为 1
SELECT * FROM table1
BEGIN TRAN
SELECT '第二个事务', @@TRANCOUNT --值为 2
DELETE table1
COMMIT TRAN
SELECT '递交第二个事务', @@TRANCOUNT --值为 1
ROLLBACK TRAN
SELECT '回滚第一个事务', @@TRANCOUNT --值为 0
2) SELECT '事务处理前', @@TRANCOUNT --值为 0
BEGIN TRAN
SELECT '第一个事务', @@TRANCOUNT --值为 1
SELECT * FROM table1
SAVE TRAN t1
SELECT '保存第一个事务后', @@TRANCOUNT --值为 1
BEGIN TRAN
SELECT '第二个事务', @@TRANCOUNT --值为 2
DELETE table1
ROLLBACK TRAN t1
SELECT '回滚到保存点t1', @@TRANCOUNT --注意这里的值为 2
IF @@TRANCOUNT>0
ROLLBACK TRAN
SELECT '处理结束', @@TRANCOUNT --为 0
事务处理嵌套的语法和对@@TRANCOUNT的影响
最新推荐文章于 2025-07-26 13:59:39 发布
本文详细介绍了SQL中事务处理的基本操作及@@TRANCOUNT的作用。通过两个实例演示了如何使用BEGIN TRAN、COMMIT TRAN、ROLLBACK TRAN和SAVE TRAN来管理数据库事务,并展示了@@TRANCOUNT在不同事务状态下的变化。
786

被折叠的 条评论
为什么被折叠?



