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 |