프로시저 및 DB 작업시 현재는 잘 작동하는 프로그램이 칼럼의 추가, 데이터 타입의 변화, 그 밖의 많은 상황에서 오류가 발생하는 경우가 존재합니다. 이때 트랜잭션이 걸려있지 않은 경우 일부 데이터만 처리가 되는 매우 심각한 오류가 발생할 수 있습니다.
MSSQL SERVER는 이러한 상황에 대해 SQL 실행시 오류를 컨트롤 할 수 있도록 Try Catch 문을 제공하고 있습니다.
그리고 Try Catch와 Transaction처리를 통해 데이터 정합성을 보장할 수 있습니다.
사용법은 간단합니다.
간단하게 테스트를 한번 해보겠습니다.
우선 아래의 테이블을 생성해 줍니다.
아래의 코드를 실행시
출력결과를 보면 TestTran 테이블에 Insert를 했음에도 불구하고 데이터가 조회되지 않는데
이는 Catch문에서 예외상황이 발생할 시 Transaction에 대해 Rollback 처리를 했기 때문입니다.
또한 위에 Catch 문에서 사용한 이 SQL문은 Try Catch는 오류에 대해 전적으로 사용자에게 처리를 맡기기 때문에 해당 구문으로 메시지를 표시하지 않는다면 따로 결과창에 표시가 되지 않습니다.
아래의 그림은 해당 오류 메시지 처리구문을 주석 처리한 후 실행한 결과입니다.
이처럼 Try Catch 문을 잘 사용한다면 어떠한 상황에서도 데이터 정합성을 보장할 수 있기 때문에 꼭 알아두도록 합시다