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


sp_altermessage (Transact-SQL)

Область применения: SQL Server

Изменяет состояние определяемых пользователем или системных сообщений в экземпляре SQL Server ядро СУБД. Определяемые пользователем sys.messages сообщения можно просматривать с помощью представления каталога.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_altermessage
    [ @message_id = ] message_id
    , [ @parameter = ] N'parameter'
    , [ @parameter_value = ] 'parameter_value'
[ ; ]

Аргументы

[ @message_id = ] message_id

Номер ошибки сообщения, из который нужно изменить sys.messages. @message_id не используется без значения по умолчанию.

[ @parameter = ] N'parameter'

Используется с @parameter_value , чтобы указать, что сообщение должно быть записано в журнал приложений Windows. @parameter — sysname без значения по умолчанию.

@parameter необходимо задать WITH_LOG или NULL. Если для @parameter задано WITH_LOG значение или NULLзначение для @parameter_valuetrue, сообщение записывается в журнал приложений Windows. Если для @parameter задано WITH_LOG значение или NULL значение @parameter_value false, сообщение не всегда записывается в журнал приложений Windows, но может быть записано в зависимости от того, как возникла ошибка.

Если сообщение записывается в журнал приложений Windows, оно также записывается в файл журнала ошибок ядро СУБД.

Если указан @parameter , необходимо также указать @parameter_value .

[ @parameter_value = ] 'parameter_value'

Используется с @parameter , чтобы указать, что ошибка должна быть записана в журнал приложений Windows. @parameter_value — varchar(5), без значения по умолчанию.

  • Если trueошибка всегда записывается в журнал приложений Windows.
  • Если falseошибка не всегда записывается в журнал приложений Windows, но может быть записана в зависимости от способа возникновения ошибки.

Если указан @parameter_value , необходимо также указать @parameter .

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

0 (успешно) или 1 (сбой).

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

Нет.

Замечания

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

Системные сообщения можно изменить с помощью sp_altermessage.

Разрешения

Требуется членство в предопределенных ролях сервера serveradmin .

Примеры

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

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