by 힘내라김대리 [SQLServer] 트랜잭션에러 mssql [2019.04.17 13:24:19]
SP를 작성하다가 트랜잭션 오류가 나서 찾아봤지만
명확한 정보가 없어서 질문을 남깁니다.
SP를 작성하고 실행을 했더니 다음과같은 에러메세지가 출력이 됩니다.
"현재 트랜잭션은 커밋할 수 없으며 로그 파일에 쓰는 작업을 지원하지 않습니다. 트랜잭션을 롤백하십시오."
어떤 의미인가요??
TRY 블록에서 트랜잭션을 시작했지만 에러가 발생 - FK 위반, 중복키, 0으로 나누기, 버퍼 오버플로우 등등 - 하면.. 그 트랜잭션은 커밋할 수 없는 상태가 되기 때문에 그런 메세지가 출력됩니다.
CATCH 블록에서 XACT_STATE 를 확인해서 롤백하는 구문을 넣어 주시면 해결됩니다.