0
我有一个过程,它是整理以下处理Uncommitable交易SQL SERVER
BEGIN TRY
BEGIN TRAN
...transactins A....
BEGIN TRY
.... Transaction B ....
END TRY
BEGIN CATCH
.... Set variables and print messages ....
END CATCH
....Transaction C
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
...Transaction D
END CATCH
的事务B被抛出错误的,并且由于这种工艺要到uncommitable状态,并抛出下面的错误。我已检查过XACT_STATE()值-1
消息3930,级别16,状态1,过程xxxxxxxx,行70 当前事务无法提交并且不能支持写入日志文件的操作。回滚事务。
是否有任何其他方式如何跳过事务B和执行业务C
我在wesites中看到了嵌套事务可以提供帮助的情景。但我无法实现它。你有什么想法在这个相关吗? – Santy
从[文档](http://msdn.microsoft.com/zh-cn/library/ms189336.aspx)中提到的有关嵌套事务的一个关键点是,提交内部事务被SQL Server数据库引擎忽略。事务根据在最外层事务结束时采取的动作提交或回滚,如果外层事务被提交,则内层嵌套事务也被提交;如果外层事务被回滚,则所有内层事务也被回滚,不管内部交易是否单独承诺。“ –
谢谢Joe提供的宝贵信息... – Santy