MSSQL - RAISERROR (오류 메시지 생성하기)

320x100
반응형

 

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;

320x100
반응형