sp_altermessage (Transact-SQL)

Se aplica a: SQL Server

Modifica el estado de los mensajes definidos por el usuario o del sistema en una instancia del Motor de base de datos de SQL Server. Los mensajes definidos por el usuario se pueden ver mediante la vista de sys.messages catálogo.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @message_id = ] message_id

Número de error del mensaje que se va a modificar de sys.messages. @message_id es int, sin valor predeterminado.

[ @parameter = ] N'parameter'

Se usa con @parameter_value para indicar que el mensaje se va a escribir en el registro de aplicaciones de Windows. @parameter es sysname, sin ningún valor predeterminado.

@parameter debe establecerse WITH_LOG en o NULL. Si @parameter se establece WITH_LOG en o NULLy el valor de @parameter_value es true, el mensaje se escribe en el registro de aplicaciones de Windows. Si @parameter se establece WITH_LOG en o NULL y el valor de @parameter_value es false, el mensaje no siempre se escribe en el registro de aplicaciones de Windows, pero puede escribirse en función de cómo se produjo el error.

Si se escribe un mensaje en el registro de aplicaciones de Windows, también se escribe en el archivo de registro de errores Motor de base de datos.

Si se especifica @parameter , también se debe especificar @parameter_value .

[ @parameter_value = ] 'parameter_value'

Se usa con @parameter para indicar que el error se va a escribir en el registro de aplicaciones de Windows. @parameter_value es varchar(5), sin ningún valor predeterminado.

  • Si truees , el error siempre se escribe en el registro de aplicaciones de Windows.
  • Si falsees , el error no siempre se escribe en el registro de aplicaciones de Windows, pero puede escribirse en función de cómo se produjo el error.

Si se especifica @parameter_value , también se debe especificar @parameter .

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Ninguno.

Comentarios

El efecto de sp_altermessage con la WITH_LOG opción es similar al del RAISERROR WITH LOG parámetro , excepto que sp_altermessage cambia el comportamiento de registro de un mensaje existente. Si se modifica un mensaje como WITH_LOG, siempre se escribe en el registro de aplicaciones de Windows, independientemente de cómo invoca un usuario el error. Incluso si RAISERROR se ejecuta sin la WITH_LOG opción , el error se escribe en el registro de aplicaciones de Windows.

Los mensajes del sistema se pueden modificar mediante sp_altermessage.

Permisos

Requiere la pertenencia al rol fijo de servidor serveradmin .

Ejemplos

En el ejemplo siguiente se escribe el mensaje 55001 existente en el registro de aplicaciones de Windows.

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