본문 바로가기
IT/MSSQL

[MSSQL] BEGIN TRY, BEGIN CATCH 트랜젝션 오류 처리

by 베베야 2021. 4. 9.
728x90

이번 시간에는 MSSQL BEGIN TRY, BEGIN CATCH 사용법에 대해서 알아보겠습니다.

BEGIN TRY, BEGIN CATCH 문은 
BEGIN TRY 속에 있는 쿼리의 결과 값이 오류가 발생하면 
BEGIN CATCH  로 보내서 해당 쿼리를 실행하게 하는 구문입니다.
(보통은 원하는 결과가 아니면 BEGIN CATCH 에서 오류로 표기하기 위해서 사용합니다.)

 

 

사용법

--문법
BEGIN TRY  
     { sql_statement | statement_block }  
END TRY  
BEGIN CATCH  
     [ { sql_statement | statement_block } ]  
END CATCH  

sql_statement : Transact-SQL 문입니다.
statement_block : 일괄 처리되거나 BEGIN … END 블록으로 묶인 Transact-SQL 문의 그룹입니다.

 

 

예제

--예시
BEGIN TRY  -- TRY 속 결과가 오류면 CATCH로 감
     select 99/0 --에러구문 
 COMMIT TRAN --에러가 없으면 실행
END TRY  
BEGIN CATCH  
    IF @@TRANCOUNT > 0
ROLLBACK TRAN --에러 발생시롤백한다

--오류 메시지 출력
DECLARE @ErrorMessage NVARCHAR(MAX)
SELECT @ErrorMessage = ERROR_MESSAGE()
--PRINT @ErrorMessage
RAISERROR (@ErrorMessage,16,1); --16으로 설정하면 실제의 오류가 표시된다
--RAISERROR ('error',16,1); --16으로 설정하면 실제의 오류가 표시된다
RETURN
END CATCH  

 

예제 첨부

BEGIN TRY, BEGIN CATCH.txt
0.00MB

 

이상으로 BEGIN TRY, BEGIN CATCH 사용해서 오류구문을 처리하고 출력해 보는 방법에 대해서 알아보았습니다.

반응형
그리드형

댓글