RAISERROR ( { message_id | message_text | @local_variable }
{ ,severity ,state }
[ ,argument [ ,...n ] ] )
[ WITH option [ ,...n ] ];
이번에는 message_text를 이용하여 RAISERROR를 사용해보겠다.
message_text는 2,047문자까지 저장 가능하며 마지막 3문자 '...'로 예약되어 있으니 주의해야 한다. 만약 그래서 2,048개나 그 이상의 문자들로 이루어진 텍스트를 message_text에 할당한다면 일부가 삭제되고 마지막은 ...으로 채워져 있을 것이다.
그리고 message_text를 RAISERROR에 사용하면 message_id는 50,000으로 세팅이 된다.
아래 예를 보자.
RAISERROR('My Error Message', 1, 1);
결과는 이렇다.
My Error Message
메시지 50000, 수준 1, 상태 1
Severity
얼마나 이 Error가 심각한지를 나타내는 정도이다. 정수로 0부터 25까지 값을 가질 수 있다. 각각의 정도가 심각함의 정도를 나타낸다.
0~10은 Informational messages 수준으로 심각도가 낮은 수준이다.
11~18은 Errors 수준으로 심각도가 중간 정도이다.
19~25는 Fatal error 수준으로 심각도가 크다.
state
0부터 255까지의 상태값이 할당된다. 만약 하나의 같은 사용자 정의 에러 메시지를 여러 곳에서 발생시킨다고 하자. 어딘가에서 에러 메시자가 발생할 것이고 그 곳이 어디인지 좀 더 쉽게 찾을 수 있도록 뭔가 특별한 숫자를 부여하고 싶을때 state에 그 숫자를 세팅하면 된다.
WITH OPTION
LOG, NOWAIT, SETERROR가 옵션이 될 수 있다.
WITH LOG는 SQL Server Database Engine에 대한 에러를 error log와 응용프로그램 log에 기록한다.
WITH NOWAIT는 에러 메시지를 사용자에게 즉시 전송한다.
WITH SETERROR는 심각도(Severity)에 상관없이 ERROR_NUMBER와 @ERROR값들을 message_id나 50000으로 세팅한다.
원문출처 https://www.sqlservertutorial.net/sql-server-stored-procedures/sql-server-raiserror/
'데이터베이스' 카테고리의 다른 글
Clustered Index (0) | 2020.05.29 |
---|---|
Convert 함수를 이용한 날짜 및 시간 스타일 변환 (0) | 2020.05.28 |
SQL Server RAISERROR 1부 (0) | 2020.05.25 |
함수와 저장프로시져의 차이 (0) | 2020.05.24 |
SQL 세션이란 (0) | 2020.05.23 |