Amazon RDS for SQL Server のカスタムエラーメッセージの作成
アプリケーションは多くの場合、RAISERROR を使用してエラーを発生させることができるよう、sys.messages に独自のエラーメッセージを定義します。Amazon RDS DB インスタンスで、カスタムメッセージを sys.messages に追加するには、rds_create_custom_message ストアドプロシージャを使用します。このプロシージャはパラメータを sp_addmessage に渡します。
rds_create_custom_message プロシージャには以下のパラメータがあります。
| パラメータ名 | データ型 | デフォルト | 必須 | 説明 |
|---|---|---|---|---|
|
int |
NULL |
必須 |
メッセージの ID。50001~2147483647 の範囲の値にする必要があります。 |
|
smallint |
NULL |
必須 |
メッセージの重要度レベル。1~25 の範囲の値にする必要があります。 |
|
nvarchar(255) |
NULL |
必須 |
メッセージのテキスト。値を空にすることはできません。 |
|
SYSNAME |
NULL |
オプション |
メッセージの言語。デフォルトは、セッションのデフォルト言語です。 |
|
varchar(5) |
NULL |
オプション |
メッセージが生成されたときに Windows アプリケーションログにメッセージを書き込むかどうかを指定します。 |
|
varchar(7) |
NULL |
オプション |
|
これらのパラメータは、sp_addmessage のパラメータと同じ意味を持ちます。詳細については、Microsoft Learn ウェブサイトの「sp_addmessage
次の例では、sys.messages にメッセージを追加し、生成時に Windows アプリケーションログに記録するようにします。この例では、@msgnum の値 50002、@severity の値 16、および @msgtext の値を、それぞれ独自のメッセージ ID、重要度、テキストに置き換えます。
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';
次の例では、既存のメッセージのテキストを置き換えます。この例では、@msgnum の値 50002、@severity の値 16、および @msgtext の値を、それぞれ独自のメッセージ ID、重要度、テキストに置き換えます。
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';
メッセージが追加されたことを確認するには、sys.messages をクエリします。この例では、message_id の値 50002 を、独自のメッセージ ID に置き換えます。
SELECT * FROM sys.messages WHERE message_id =50002;