-
오류 핸들링 (try ... catch)SQLServer 2020. 1. 14. 16:55
테스트 환경
- OS : Windows 2008 R2 DataCenter
- DBMS : SQL Server 2012 Enterprise Edition + SP4
- 참고문서 : https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms175976%28v%3dsql.110%29
내용
- 개요
T-SQL 에서 발생하는 오류를 제어합니다.
- 구문
BEGIN TRY
{ sql_statement | statement_block }
END TRY
BEGIN CATCH
[ { sql_statement | statement_block } ]
END CATCH
[ ; ]
CATCH 블록의 범위에서 다음 시스템 함수를 사용하여 CATCH 블록을 실행하도록 만든 오류에 대한 정보를 얻을 수 있습니다.
-
ERROR_NUMBER()는 오류 번호를 반환합니다.
-
ERROR_SEVERITY()는 심각도를 반환합니다.
-
ERROR_STATE()는 오류 상태 번호를 반환합니다.
-
ERROR_PROCEDURE()는 오류가 발생한 저장 프로시저 또는 트리거의 이름을 반환합니다.
-
ERROR_LINE()은 오류를 발생시킨 루틴 내의 줄 번호를 반환합니다.
-
ERROR_MESSAGE()는 오류 메시지의 전체 텍스트를 반환합니다. 이 텍스트는 길이, 개체 이름 또는 시간과 같은 대체 가능한 매개 변수에 제공된 값을 포함합니다.
- 예제
USE AdventureWorks2012;
GOBEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO'SQLServer' 카테고리의 다른 글
waitfor (0) 2020.01.17 매개변수 스니핑 (with recompile) (0) 2020.01.14 인덱스 채우기 비율 (FILLFACTOR, PAD_INDEX ) (0) 2020.01.14 인덱스 조각화 확인 방법 (0) 2020.01.14 columnstore 인덱스 (0) 2020.01.14 -