View a markdown version of this page

Amazon RDS for SQL Server のカスタムエラーメッセージの作成 - Amazon Relational Database Service

Amazon RDS for SQL Server のカスタムエラーメッセージの作成

アプリケーションは多くの場合、RAISERROR を使用してエラーを発生させることができるよう、sys.messages に独自のエラーメッセージを定義します。Amazon RDS DB インスタンスで、カスタムメッセージを sys.messages に追加するには、rds_create_custom_message ストアドプロシージャを使用します。このプロシージャはパラメータを sp_addmessage に渡します。

rds_create_custom_message プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

@msgnum

int

NULL

必須

メッセージの ID。50001~2147483647 の範囲の値にする必要があります。

@severity

smallint

NULL

必須

メッセージの重要度レベル。1~25 の範囲の値にする必要があります。

@msgtext

nvarchar(255)

NULL

必須

メッセージのテキスト。値を空にすることはできません。

@lang

SYSNAME

NULL

オプション

メッセージの言語。デフォルトは、セッションのデフォルト言語です。

@with_log

varchar(5)

NULL

オプション

メッセージが生成されたときに Windows アプリケーションログにメッセージを書き込むかどうかを指定します。

@replace

varchar(7)

NULL

オプション

REPLACE を指定して、同じ ID と言語を持つ既存のメッセージを上書きします。

これらのパラメータは、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;