У меня запланировано задание через агент SQL Server, который запускает sproc, который запускает некоторые другие sprocs.Каждый sproc выглядит следующим образом:
BEGIN TRY
-- do stuff
END TRY
BEGIN CATCH
DECLARE @errorMessage varchar(4000)
DECLARE @procName varchar(255)
SELECT @errorMessage = error_message()
SELECT @procName = OBJECT_NAME(@@PROCID)
RAISERROR('%s threw an exception: %s', 16, 1, @procName, @errorMessage)
END CATCH
Все это отлично работает - ошибки возникают и выбрасываются в стек, жизнь хороша.Однако мои вызовы RAISERROR, похоже, не приводят к сбою задания - я настроен на получение уведомления по электронной почте «При сбое задания», но никогда его не получаю.Уведомления по электронной почте работают, так как я буду получать электронные письма, если я изменю уведомление на «когда задание выполнено успешно».Есть ли какая-то другая функция, которую я должен использовать здесь вместо RAISERROR?