我有一个链接服务器并尝试删除链接服务器中的表上的内容。我正在使用事务并尝试在存储过程中捕获如下。
BEGIN TRY
BEGIN TRANSACTION
DELETE FROM [server].[database].[dbo].[Table]
.
.
.
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT(ERROR_MESSAGE())
ROLLBACK TRANSACTION
END CATCH
使用此代码我在事务中有很多插入和删除。它给出了这个错误:OLE DB提供程序" SQLNCLI11"对于链接服务器"服务器"返回消息"没有事务处于活动状态。"
我了解到如果我使用SET XACT_ABORT ON,如果在运行时遇到任何错误,它将丢弃任何进程,它将自动回滚。
我试图在没有交易的情况下使用SET XACT_ABORT。它工作但没有回滚。
答案 0 :(得分:0)
您在代码中有两次回滚事务。提交后,它将无法找到任何活动事务进行回滚。删除第一次回滚交易并检查。