

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 Amazon RDS for SQL Server 建立自訂錯誤訊息
<a name="Appendix.SQLServer.CommonDBATasks.CustomMessage"></a>

應用程式通常會在 中定義自己的錯誤訊息，`sys.messages`以便使用 引發錯誤訊息`RAISERROR`。在 Amazon RDS 資料庫執行個體上，若要將自訂訊息新增至 `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](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-addmessage-transact-sql)。

下列範例會將訊息新增至 `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}};
```