TSQL中嵌套事务抛出错误的回滚
这里是我试图实现的一个片段。我有一个嵌套事务“tran2”,无法回滚TSQL中嵌套事务抛出错误的回滚,sql,sql-server-2008,tsql,transactions,Sql,Sql Server 2008,Tsql,Transactions,这里是我试图实现的一个片段。我有一个嵌套事务“tran2”,无法回滚 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 'transacti
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 ..
这是我犯的错误吗
Msg 6401,16级,状态1,第13行无法回滚tran2。找不到该名称的事务或保存点
但是,
@@trancount
在该点给了我2个事务,而不是开始trans-tran2
,请使用
这将在外部事务中创建一个保存点,您可以回滚到该保存点。请阅读Paul Randal的-SQL Server中不支持嵌套事务。从语法上讲,是的——你可以做到——但实际上,你从来没有真正的嵌套事务。。。。