트랜잭션 수명
적용 대상:SQL Server
Transact-SQL 저장 프로시저에서 시작된 트랜잭션과 관리 코드에서 시작된 트랜잭션 간에는 중요한 차이점이 있습니다. CLR(공용 언어 런타임) 코드는 CLR 호출의 진입 또는 종료 시 트랜잭션 상태의 균형을 해제할 수 없습니다. 이 차이점으로 인해 발생하는 다음과 같은 문제점에 주의하십시오.
CLR 프레임 내에서 시작된 트랜잭션은 커밋되거나 롤백되어야 합니다. 그렇지 않으면 SQL Server 프레임이 종료될 때 오류가 발생합니다.
외부 트랜잭션은 CLR 코드 내에서 커밋하거나 롤백할 수 없습니다.
다른 프로시저에서 시작된 트랜잭션을 커밋하려고 하면 런타임 오류가 발생합니다.
동일한 프로시저에서 시작되지 않은 트랜잭션을 롤백하려고 하면 트랜잭션이 응답을 중지합니다(다른 부작용 작업이 발생하지 않도록 방지). 트랜잭션은 CLR 코드가 범위를 벗어날 때까지 중단됩니다. 프로시저 내에 오류가 있어 전체 트랜잭션을 종료하려는 경우에는 이 동작이 유용할 수 있습니다.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기