Creación de mensajes de error personalizados de Amazon RDS para SQL Server
Las aplicaciones suelen definir sus propios mensajes de error en sys.messages para poder generarlos con RAISERROR. En una instancia de base de datos de Amazon RDS, utilice el procedimiento rds_create_custom_message almacenado para agregar un mensaje personalizado a sys.messages. El procedimiento transfiere sus parámetros a sp_addmessage.
El procedimiento rds_create_custom_message tiene los siguientes parámetros.
| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
|---|---|---|---|---|
|
int |
NULL |
obligatorio |
El ID del mensaje. Este valor debe estar entre 50 001 y 2 147 483 647. |
|
smallint |
NULL |
obligatorio |
El nivel de gravedad del mensaje. Este valor debe estar entre 1 y 25. |
|
nvarchar(255) |
NULL |
obligatorio |
El texto del mensaje. El valor no puede estar vacío. |
|
SYSNAME |
NULL |
opcional |
El idioma del mensaje. El idioma predeterminado es el idioma predeterminado de la sesión. |
|
varchar(5) |
NULL |
opcional |
Especifica si se debe escribir el mensaje en el registro de aplicaciones de Windows cuando se genere el mensaje. |
|
varchar (7) |
NULL |
opcional |
Especifique si |
Los parámetros tienen el mismo significado que los parámetros de sp_addmessage. Para obtener más información, consulte sp_addmessage
En el siguiente ejemplo, se agrega un mensaje sys.messages y se registra en el registro de aplicaciones de Windows cuando se genera. En el ejemplo, sustituya el valor de @msgnum 50 002, el valor de @severity 16 y el valor de @msgtext por su propio ID, gravedad y texto del mensaje.
EXEC msdb.dbo.rds_create_custom_message @msgnum =50002, @severity =16, @msgtext = N'The order could not be processed.', @lang = 'us_english', @with_log = 'TRUE';
En el siguiente ejemplo, se reemplaza el texto de un mensaje existente. En el ejemplo, sustituya el valor de @msgnum 50 002, el valor de @severity 16 y el valor de @msgtext por su propio ID, gravedad y texto del mensaje.
EXEC msdb.dbo.rds_create_custom_message @msgnum =50002, @severity =16, @msgtext = N'The order could not be processed. Contact support.', @lang = 'us_english', @with_log = 'TRUE', @replace = 'REPLACE';
Para confirmar que se agregó el mensaje, consulte sys.messages. En el ejemplo, sustituya el valor de message_id 50 002 por el ID del mensaje.
SELECT * FROM sys.messages WHERE message_id =50002;