더북(TheBook)

이를 테스트하는 방법이 있습니다. SQL Server Management Studio에서 새 질의 구문 창을 또 띄우면 됩니다. 각 질의 구문 창은 DB를 액세스하는 연결 객체, 즉 세션입니다.

p319

▲ 그림 7-23 새 질의 구문 창 열기

 

지금부터 테스트해 봅시다. 먼저 첫 번째 질의 구문 창에서 다음을 실행합니다.

begin transaction
update UserAccount set Money=Money+100 where ID='Kang Bu Ja'
update UserAccount set Money=Money-100 where ID='Hong Gil Dong'

트랜잭션 시작을 하기는 했지만, 아직 트랜잭션을 커밋이나 롤백하지 않았습니다. 이제 두 번째 질의 구문 창에서 다음을 실행해 봅시다.

select Money from UserAccount where ID='Kang Bu Ja'

이때 두 번째 질의 구문 창의 질의 구문은 실행 결과가 나오지 않고 무한 대기 상태가 될 것입니다. Money 값이 무엇이 될지 최종 판단을 할 수가 없기 때문입니다. 첫 번째 질의 구문 창에서 트랜잭션이 실행 중에 있고, 이것이 커밋되느냐 롤백되느냐에 따라 결정됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.