Некоторые разработчики используют в RaiseError следующий синтаксис:
RAISERROR('My business error message', 16, 0)
С целью повторного использования части catch блока try..catch для бизнес-ошибок.
Но я заметил несколько таких записей в журнале событий:
Msg # 50006, <blabla> please register the error message with sp_addmessage
Есть какой-нибудь способ отключить создание таких событий? Я искал в google, msdn и docs, но не нашел ни малейшего понятия.
Это означает, что некоторые другие разработчики используют RAISERROR(50006, 16,1)
... Когда используется синтаксис msgid (или когда @local_variable в синтаксисе является int), ожидается, что сообщение было добавлено в локальную таблицу сообщений. Это нормальный подход для локализованных ошибок, когда возникает ошибка msgid и добавляются сообщения, локализованные для разных языков.
Независимо от того, какое приложение / разработчик использует синтаксис msgid, он / она также несет ответственность за добавление сообщения в таблицу сообщений во время развертывания для локали сервера.
RAISEERROR ('Это просто информация', 10, 1)
Это скажет SQL Server вызвать нефатальную ошибку.
Ссылка: http://www.sqlteam.com/article/handling-errors-in-stored-procedures