본문 바로가기

데이터베이스

SQL Server RAISERROR 1부

 

RAISERROR는 Sql Server에서 사용자가 임의로 자신만의 에러 메시지를 생성하게 해준다.  

그리고 그 에러 메시지를 응용프로그램쪽으로 반환 시킨다.

 

아래는 RAISERROR의 Syntax이다.

 

RAISERROR ( { message_id | message_text | @local_variable }  
    { ,severity ,state }  
    [ ,argument [ ,...n ] ] )  
    [ WITH option [ ,...n ] ];

 

좀 더 자세히 살펴보자.

 

message_id? sys.messages catalog view에 저장될 사용자 정의 에러 메시지 번호이다. 

새로운 사용자 정의 에러 메시지번호를 추가하고자 한다면 저장 프로시져(Stored Procedure) sp_addmessage를 사용해야 한다. 사용자 정의 에러메시지의 번호는 반드시 50,000 이상이어야한다. 별도로 message_id 값을 지정해 주지 않으면  디폴트로 RAISERROR 값은 50,000이 된다.

 

EXEC sp_addmessage 

    @msgum = 50005

   , @severity = 1

   , @msgtext = 'My Error Message'

   , @lang = 'us_english'

;

 

정상적으로 위의 실행 결과가 처리되었는지 확인 하기 위해 아래와 같이 쿼리해주면 되겠다.

 

Select * From sys.messages Where message_id = 50005;

 

이번에는 이 50005 message_id를 사용해서 RAISERROR를 실행시켜보자.

 

RAISERROR(50005, 1, 1)

 

출력결과는 아래와 같다.

 

My Error Message
메시지 50005, 수준 1, 상태 1

 

그럼 이번에는 이 메시지를 삭제시켜 보겠다. 이 때도 사용되는 저장 프로시져는 sp_dropmessage이다. 

 

EXEC sp_dropmessage 

    @msgnum = 50005;

 

혹시 "메시지 번호 50005 또는 지정된 언어 버전이 없습니다." 에러 메시지를 만나다면 아래와 같이 입력하고 실행해보자.

EXEC sp_dropmessage 
    @msgnum = 50005,
    @lang = 'us_english';

 

 

'데이터베이스' 카테고리의 다른 글

Clustered Index  (0) 2020.05.29
Convert 함수를 이용한 날짜 및 시간 스타일 변환  (0) 2020.05.28
Sql Server RAISERROR 2부  (0) 2020.05.26
함수와 저장프로시져의 차이  (0) 2020.05.24
SQL 세션이란  (0) 2020.05.23