Поделиться через


sp_altermessage (Transact-SQL)

Изменяет состояние пользовательских или системных сообщений в экземпляре SQL Server Database Engine. Эти сообщения можно просмотреть через представление каталога sys.messages.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

        sp_altermessage [ @message_id = ] message_number   ,[ @parameter = ]'write_to_log'
   ,[ @parameter_value = ]'value' 

Аргументы

  • [@message_id = ] message_number
    Номер ошибки сообщения из sys.messages, подлежащего изменению. Аргумент message_number имеет тип int и не имеет значения по умолчанию.

  • [ @parameter = ] **'**write_to_log'
    Используется вместе со значением аргумента @parameter_value для указания того, что сообщение будет записано в журнал приложений Microsoft Windows. Аргумент write_to_log имеет тип sysname и не имеет значения по умолчанию. Аргумент write_to_log должен быть установлен в WITH_LOG либо в значение NULL. Если аргумент write_to_log установлен в значение WITH_LOG или значение NULL, а значение для @parameter_value равно true, сообщение записывается в журнал приложений Windows. Если аргумент write_to_log установлен в значение WITH_LOG или в значение NULL, а значение для @parameter_value равно false, сообщение не всегда записывается в журнал приложений Windows, но может записываться в зависимости от того, как была вызвана ошибка. Если указан аргумент write_to_log, должно быть задано и значение для аргумента @parameter_value.

    ПримечаниеПримечание

    Если сообщение заносится в журнал приложений Windows, оно также заносится и в журнал ошибок компонента Database Engine.

  • [ @parameter_value = ]**'**value'
    Используется вместе с аргументом @parameter для указания того, что ошибка будет записана в журнал приложений Microsoft Windows. Аргумент value имеет тип varchar(5) и не имеет значения по умолчанию. Если его значение равно true, ошибка всегда записывается в журнал приложений Windows. Если его значение равно false, ошибка не всегда записывается в журнал приложений Windows, но может записываться в зависимости от того, как она была вызвана. Если указан аргумент value, то должно быть задано и значение write_to_log в качестве значения аргумента @parameter.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Действие процедуры sp_altermessage с параметром WITH_LOG похоже на действие инструкции RAISERROR WITH LOG, за исключением того, что процедура sp_altermessage изменяет поведение в журнале существующего сообщения. Если сообщение изменено с параметром WITH_LOG, это сообщение всегда записывается в журнал приложений Windows, независимо от того, как была вызвана ошибка. Даже если инструкция RAISERROR выполняется без параметра WITH_LOG, ошибка записывается в журнал приложений Windows.

Системные сообщения могут быть изменены с помощью процедуры sp_altermessage.

Разрешения

Выполнять данную хранимую процедуру могут члены предопределенной роли сервера serveradmin.

Примеры

В следующем примере существующее сообщение 55001 записывается в журнал приложений Windows.

sp_altermessage 55001, 'WITH_LOG', 'true';
GO