как использовать SET XACT_ABORT ON без транзакции - PullRequest
0 голосов
/ 08 мая 2018

У меня есть связанный сервер, и я пытаюсь что-то удалить из таблицы, которая находится на связанном сервере.Я использую транзакцию и пытаюсь поймать хранимую процедуру, как показано ниже.

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 без транзакции.это работало, но не откатывалось.

1 Ответ

0 голосов
/ 08 мая 2018

у вас есть транзакция отката дважды в коде. После фиксации он не сможет найти активную транзакцию для отката. Удалите 1-ю транзакцию отката и проверьте.

...