1
下面是我嘗試實現的一個片段。我有一個嵌套事務 'TRAN2',我不能回滾在TSQL中回滾嵌套事務拋出錯誤
SELECT 'Before', * FROM [table] WHERE field ..
BEGIN TRAN tran1
UPDATE [table] set field ... WHERE field ..
BEGIN TRAN tran2
SELECT 'During', * FROM [table] WHERE field ..
select @@trancount as 'transactioncount'
rollback tran tran2
rollback TRAN tran1
SELECT 'After', * FROM [table] WHERE field ..
拋出我這個錯誤
消息6401,級別16,狀態1,行13
不能回滾TRAN2 。沒有找到該名稱的事務或保存點。
但是@@trancount
是給我2個交易在這一點上
閱讀Paul Randal的[SQL Server Myth一天:嵌套事務是真實的](http://www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-% 282630%29-nested-transactions-are-real.aspx) - SQL Server中不支持嵌套事務。在句法上,是的 - 你可以做到這一點 - 但實際上,你從來沒有真正擁有嵌套交易.... – 2012-08-06 04:56:02