

# Amazon RDS for SQL Server에 대한 사용자 지정 오류 메시지 생성
<a name="Appendix.SQLServer.CommonDBATasks.CustomMessage"></a>

애플리케이션은 `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 | 선택 사항 | ID와 언어가 동일한 기존 메시지를 덮어쓰려면 `REPLACE`를 지정합니다. | 

이러한 파라미터는 `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}};
```