Завершение работы в SQL Server во время выполнения

Есть ли способ заставить запланированное задание завершиться (остановить, выйти, прекратить выполнение, сообщить об ошибке) в рамках хранимой процедуры в этом задании?

Например, у меня есть несколько проверочных запросов в TRY блок, который делает RAISERROR (59834,16,1) идти в CATCH заблокировать отправку электронного сообщения о том, что при проверке запросов обнаружена плохая ситуация и работа должна быть остановлена. Число 59834 было произвольным, но конкретным. Тем не менее, каждый раз, когда я тестирую задание, хотя я и выдал ошибку, задание продолжает выполняться; это никогда не сообщает о неудаче.

Я пытался использовать тот же RAISERROR в CATCH блок, как я сделал в TRY блок, но это тоже не сработало.

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

1 ответ

Похоже, настройка XACT_ABORT не включена. Без включения XACT_ABORT выполнение будет продолжено независимо от обнаруженных ошибок. Дополнительная информация о XACT_ABORT:

Запись Microsoft BOL для XACT_ABORT

В чем преимущество использования SET XACT_ABORT ON в хранимой процедуре?

Так что вы могли бы рассмотреть SET XACT_ABORT ON в начале работы.

Другие вопросы по тегам