Compartir a través de


sp_altermessage (Transact-SQL)

Modifica el estado de los mensajes definidos por el usuario en una instancia del SQL Server Database Engine (Motor de base de datos de SQL Server). Los mensajes definidos por el usuario se pueden ver con 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 Database Engine (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

Notas

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 no se pueden modificar con sp_altermessage.

Permisos

Requiere la pertenencia a la función fija 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