SQL SERVER中@@TRANCOUNT的使用
在SqlServer里,嵌套事务的层次是由@@TranCount全局变量反映出来的。
每一次Begin Transaction都会引起@@TranCount加1。而每一次Commit Transaction都会使@@TranCount减1,而RollBack Transaction会回滚所有的嵌套事务包括已经提交的事务和未提交的事务,而使@@TranCount置0。
例如
BEGIN TRAN --@@TRANCOUNT值为0
SELECT @@TRANCOUNT --值为1
BEGIN TRAN
SELECT @@TRANCOUNT --值为2
COMMIT TRAN
SELECT @@TRANCOUNT --值为1
ROLLBACK TRAN
SELECT @@TRANCOUNT --值为0
--又如
BEGIN TRAN --@@TRANCOUNT值为0
SELECT @@TRANCOUNT --值为1
SAVE TRAN t1
SELECT @@TRANCOUNT --值为1
BEGIN TRAN
SELECT @@TRANCOUNT --值为2
ROLLBACK TRAN t1
SELECT @@TRANCOUNT --注意这里的值为2
IF @@TRANCOUNT>0
ROLLBACK TRAN
SELECT '处理结束', @@TRANCOUNT --为0
参考资料: SQL SERVER中@@TRANCOUNT http://www.studyofnet.com/news/1010.html
每一次Begin Transaction都会引起@@TranCount加1。而每一次Commit Transaction都会使@@TranCount减1,而RollBack Transaction会回滚所有的嵌套事务包括已经提交的事务和未提交的事务,而使@@TranCount置0。
例如
BEGIN TRAN --@@TRANCOUNT值为0
SELECT @@TRANCOUNT --值为1
BEGIN TRAN
SELECT @@TRANCOUNT --值为2
COMMIT TRAN
SELECT @@TRANCOUNT --值为1
ROLLBACK TRAN
SELECT @@TRANCOUNT --值为0
--又如
BEGIN TRAN --@@TRANCOUNT值为0
SELECT @@TRANCOUNT --值为1
SAVE TRAN t1
SELECT @@TRANCOUNT --值为1
BEGIN TRAN
SELECT @@TRANCOUNT --值为2
ROLLBACK TRAN t1
SELECT @@TRANCOUNT --注意这里的值为2
IF @@TRANCOUNT>0
ROLLBACK TRAN
SELECT '处理结束', @@TRANCOUNT --为0
参考资料: SQL SERVER中@@TRANCOUNT http://www.studyofnet.com/news/1010.html
热门话题 · · · · · · ( 去话题广场 )
- 歌手2024直播 4.1万次浏览
- 哪一瞬间让你对家庭失去信心? 19.5万次浏览
- 乡村里的童年回忆 20.0万次浏览
- 如果AI让你失业了,你怎么办? 18.0万次浏览
- 我的博士生活 157.4万次浏览
- 如果可以预知未来,你最想知道什么? 19.0万次浏览