sp_altermessage (Transact-SQL)

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

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [@message_id = ] message_number
    Es el número de error del mensaje que se va a modificar desde sys.messages. message_number es de tipo int y no tiene ningún valor predeterminado.

  • [ @parameter = ] **'**write_to_log'
    Se utiliza con **@parameter_value** para indicar que el mensaje se va a escribir en el registro de aplicación de Microsoft Windows. write_to_log es de tipo sysname y no tiene ningún valor predeterminado. write_to_log se debe establecer en WITH_LOG o NULL. Si write_to_log se establece en WITH_LOG o NULL y el valor de **@parameter_value** es true, el mensaje se escribe en el registro de aplicación de Windows. Si write_to_log se establece en WITH_LOG o NULL y el valor de **@parameter_value** es false, el mensaje no siempre se escribe en el registro de aplicación de Windows, pero se puede escribir en función de cómo se haya producido el error. Si se especifica write_to_log, se debe especificar también el valor de **@parameter_value**.

    Nota

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

  • [ @parameter_value = ]**'**value'
    Se utiliza con **@parameter** para indicar que el error se va a escribir en el registro de aplicación de Microsoft Windows. value es de tipo varchar(5) y no tiene ningún valor predeterminado. Si es true, el error se escribe siempre en el registro de aplicación de Windows. Si es false, el error no siempre se escribe en el registro de aplicación de Windows, pero se puede escribir en función de cómo se haya producido el error. Si se especifica value, se debe especificar también write_to_log para **@parameter**.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Ninguno

Comentarios

El efecto de sp_altermessage con la opción WITH_LOG es similar al del parámetro RAISERROR WITH, excepto en que sp_altermessage cambia el comportamiento de registro de un mensaje existente. Si se ha modificado un mensaje para que sea WITH_LOG, siempre se escribe en el registro de aplicación de Windows, independientemente de cómo el usuario invoque el error. Aunque se ejecute RAISERROR sin la opción WITH_LOG, el error se escribe en el registro de aplicación de Windows.

Los mensajes del sistema se pueden modificar mediante sp_altermessage.

Permisos

Necesita la pertenencia al rol fijo de servidor serveradmin.

Ejemplos

En el ejemplo siguiente se hace que el mensaje 55001 existente se registre en el registro de aplicación de Windows.

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