sp_altermessage (Transact-SQL)

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

ms175094.note(ru-ru,SQL.90).gifВажно!
Эта процедура изменилась по сравнению с более ранними версиями SQL Server. Дополнительные сведения см. в разделе Изменения в работе функций компонента Database Engine в SQL Server 2005.

Значок ссылки на разделСинтаксические обозначения в 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.

    ms175094.note(ru-ru,SQL.90).gifПримечание.
    Если сообщение заносится в журнал приложений 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

См. также

Справочник

RAISERROR (Transact-SQL)
sp_addmergefilter (Transact-SQL)
sp_dropmessage (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)

Другие ресурсы

Использование инструкции RAISERROR

Справка и поддержка

Получение помощи по SQL Server 2005