반응형
RAISERROR
- 오류 메시지를 생성하고 세션에 대한 오류 처리를 시작
- 사용자 정의 메시지를 참조하거나 동적으로 메시지를 작성
- 오류 메시지 반환
- 호출하는 애플리케이션
- 새 애플리케이션에서는 THROW를 대신 사용
- 연결된 TRY/CATCH 구문의 CATCH 블록에 서버 오류 메시지로 반환
- 호출하는 애플리케이션
구문
- Error Message
- 사용자에게 보여줄 메시지
- 메시지는 작은 따옴표 안에 감싸야 하며, 큰 따옴표는 인식하지 않음
- Severity
- 지정 할 심각도 수준
- 0 ~ 25까지 수준을 지정
- 0 ~ 10 : 작은 심각도, 알림 메시지 발생
- 11 ~ 18 : 사용자 정의 심각도, 오류 메시지 발생
- 19 ~ 25 : 치명적인 심각도, WITH LOG 옵션이 필요, 클라이언트 연결이 종료되고 오류 로그에 오류가 기록
- State
- 상태, 오류의 고유 상태 번호
- 각 메시지마다 고유 상태 번호를 지정하여 발생한 메시지의 위치를 파악
-- Error Message : 사용자에게 보여줄 메시지
-- Severity : 지정 할 심각도 수준
-- State : 상태, 오류의 고유 상태 번호
-- RAISERROR('Error Message', 'Severity', 'State');
RAISERROR('에러가 발생하였습니다.', 10, 1);
심각도에 따른 메시지 결과
0 ~ 10 : 작은 수준의 심각도
-- 0 ~ 10 : Low Level, Message
RAISERROR('Message', 10, 1);
11 ~ 18 : 사용자 정의 심각도
-- 11 ~ 18 : User Level, Error Message
RAISERROR('User Error Message', 18, 2);
19 ~ 25 : 치명적인 심각도
-- 19 ~ 25 : High Level, Critical Error Message
RAISERROR('System Critical Error Message', 25, 3);
- 치명적인 심각도를 정상적으로 출력하려면 다음과 같은 조건이 필요
- 사용자
- sysadmin 고정 서버 역할의 멤버
- ALTER TRACE 권한을 가진 사용자
- 옵션
- WITH LOG
- 사용자
-- 19 ~ 25 : High Level, Critical Error Message
-- Add Option : WITH LOG
RAISERROR('System Critical Error Message', 25, 3) WITH LOG;
반응형