sql 서버 데이터베이스 에서 raisorror 함수 사용법 에 대한 상세 한 소개

4084 단어 sqlserverraiserror
sql 서버 데이터베이스 에서 raisorror 함수 의 용법
server데이터베이스에서 raiserror 의 역할 은 asp.NET의 throw new Exception 과 마찬가지 로 이상 이나 오 류 를 던 지 는 데 사 용 됩 니 다.이 오 류 는 프로그램 에 의 해 포 착 될 수 있다.
raisorror 의 일반적인 형식 은 다음 과 같 습 니 다.
raisorror('잘못된 설명',잘못된 심각 한 단계 코드,잘못된 표지,잘못된 설명 중의 매개 변수 값(이것 은 여러 개 일 수 있 습 니 다),일부 다른 매개 변수)은 공식 적 인 형식 에 대해 다음 과 같이 설명 합 니 다.

RAISERROR ( { msg_id | msg_str | @local_variable } 
 { ,severity ,state } 
 [ ,argument [ ,...n ] ] ) 
 [ WITH option [ ,...n ] ] 
그 중에서[,argument[,...n]과[WITH option[,...n]두 가 지 는 쓰 지 않 아 도 됩 니 다.
각 매개 변수의 용법 을 각각 설명 하 다.
1.{msgid | msg_str | @local_variable }
이 매개 변수 에서 알 수 있 듯 이 이 항목 은 세 개의 값 일 수 있 습 니 다.
1.sys.messages 에서 사용자 정의 오류 정보의 오류 정보 번호,사용자 정의 오류 정 보 는 sp 를 사용 할 수 있 습 니 다.addmessage 저장 과정 이 sys.messages 에 추가 되 었 습 니 다.사용자 가 오류 메 시 지 를 정의 하 는 오류 번 호 는 50000 이상 이 어야 합 니 다.
예시:raisorror(500001,16,1)
2.직접적인 오류 설명,예:raiserror('여 기 는 잘못된 설명 예제',16,1)
3.오류 설명 변 수 를 포함 하 는 예제:

declare @error_mes varchar(1000) 
set @error_mes='          ' 
raiserror(@error_mes,16,1) 
2.severity
이 매개 변 수 는 사용자 가 정의 하 는 이 오류 정보의 단 계 를 지정 합 니 다.우 리 는 0 에서 18 사이 의 심각 한 단 계 를 지정 할 수 있 습 니 다.sysadmin 고정 서버 캐릭터 멤버 나 ALTER TRACE 권한 을 가 진 사용자 만 19 에서 25 사이 의 심각 한 단 계 를 지정 할 수 있 습 니 다.19 에서 25 사이 의 심각 한 단 계 를 사용 하려 면 WITH LOG 옵션 을 선택해 야 합 니 다.
오류 단계 가 20~25 사이 라면 데이터 베 이 스 는 이 오류 가 치 명 적 이 라 고 생각 할 것 입 니 다.데이터 베 이 스 는 이 오 류 를 오류 로그 와 응용 프로그램 로그 에 기록 한 후 데이터 베 이 스 를 연결 하지 않 습 니 다.0 보다 작은 심각 한 등급 은 0 으로 여 겨 진다.25 이상 의 심각 한 등급 은 25 로 여 겨 진다.
상태
이 매개 변 수 는 1~127 사이 의 임 의 정수 로 오류 발생 위 치 를 표시 할 수 있 습 니 다.만약 에 코드 의 여러 위치 에서 똑 같은 오류 가 발생 하면 이 매개 변 수 를 서로 다른 값 으로 설정 하여 그 자리 임 을 표시 할 수 있 습 니 다.
오류 가 발생 했 습 니 다.
4.[,argument[,...n]
인자{msgid | msg_str | @local_variable}에 대체 문자 가 포함 되 어 있 습 니 다.이 매개 변 수 는 대체 문자 의 구체 적 인 값 입 니 다.이것 은 asp.Net의 string.Format 용법 과 같 습 니 다.예 는 다음 과 같다.

declare @error_mes varchar(1000) 
set @error_mes='     %s       ' 
raiserror(@error_mes,16,1,'  ') 
그 럴 수도 있 고,적용 성 이 더 넓 을 수도 있다.

declare @error_mes varchar(1000) 
declare @error_obj varchar(1000) 
select @error_obj=name from table_users where…… 
set @error_mes='     %s       ' 
raiserror(@error_mes,16,1,@error_obj) 
위 코드 의%s 는 문자열 을 대체 하 는 것 을 의미 합 니 다.예제 를 아래 로 쓰 면 잘못 보 고 됩 니 다.

declare @error_mes varchar(1000) 
set @error_mes='     %s       ' 
raiserror(@error_mes,16,1,1) 
1 은 문자열 이 아니 기 때문에 정수 로 대체 하려 면%i 또는%d 를 사용 해 야 합 니 다.모든 대응 관 계 는 다음 과 같다.
1.%d 또는%i 는 기호 정수 가 있 음 을 나타 낸다.
2,%u 는 부호 가 없 는 정수 입 니 다.
3,%o 기호 없 는 8 진수
4,%s 대표 문자열
5,%x 또는%X 는 기호 없 는 16 진수 입 니 다.
5.[WITH option[,...n]
이 매개 변 수 는 잘못된 사용자 정의 옵션 입 니 다.다음 세 가지 값 중 하나 일 수 있 습 니 다.
1.LOG-Microsoft SQL Server 데이터베이스 엔진 인 스 턴 스 의 오류 로그 와 응용 프로그램 로그 에 오 류 를 기록 합 니 다.오류 로그 에 기 록 된 오 류 는 현재 최대 440 바이트 로 제한 되 어 있 습 니 다.sysadmin 고정 서버 역할 만
멤버 나 ALTER TRACE 권한 을 가 진 사용자 만 WITH LOG 를 지정 할 수 있 습 니 다.
2.NOWAIT-클 라 이언 트 에 게 메 시 지 를 즉시 보 냅 니 다.
3,SETERROR--@ERROR 값 과 ERRORNUMBER 값 을 msg 로 설정id 또는 50000,심각 한 단 계 를 고려 하지 않 아 도 됩 니 다.
우 리 는 또한 Begin catch 에서 raisorror 를 사용 할 수 있다.예 는 다음 과 같다.

begin try 
 raiserror('      ',16,1) //  ,  severity   11~19  ,       catch  。 
end try 
begin catch 
 declare @error_message varchar(1000) 
 set @error_message=error_message() 
 raiserror(@error_message,16,1) 
 return 
end catch 
sql server 데이터베이스 에 있 는 raisorror 함수 용법 에 대한 상세 한 소개 글 은 여기까지 입 니 다.더 많은 sql server 에 있 는 raisorror 함수 용법 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기