시작하기무료로 시작하기

트랜잭션을 커밋할지 롤백할지 결정하기

여러분이 근무하는 은행에서는 잔액이 $5,000 미만인 계좌에 $100을 지급하기로 했어요. 다만, 은행장은 $5,000 미만인 계좌가 200개를 넘지 않을 때에만 지급하길 원합니다.

여러 방법 중, 트랜잭션을 시작한 뒤 잔액이 $5,000 미만인 모든 계좌를 업데이트하는 스크립트를 준비하려고 합니다. 그다음 @@ROWCOUNT 함수를 사용해 업데이트로 영향 받은 행의 개수를 확인해요. 이 수가 200보다 크면 트랜잭션을 롤백하고, 그렇지 않으면 커밋합니다.

어떻게 스크립트를 작성하면 될까요?

이 연습은 강의의 일부입니다

SQL Server에서의 트랜잭션과 오류 처리

강의 보기

연습 안내

  • 트랜잭션을 시작하세요.
  • 영향 받은 행의 개수가 200보다 큰지 확인하세요.
  • 영향 받은 행의 개수가 200을 초과하면 트랜잭션을 롤백하세요.
  • 영향 받은 행의 개수가 200 이하이면 트랜잭션을 커밋하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

-- Begin the transaction
___ ___; 
	UPDATE accounts set current_balance = current_balance + 100
		WHERE current_balance < 5000;
	-- Check number of affected rows
	IF @@ROWCOUNT > ___ 
		BEGIN 
        	-- Rollback the transaction
			___ ___; 
			SELECT 'More accounts than expected. Rolling back'; 
		END
	ELSE
		BEGIN 
        	-- Commit the transaction
			___ ___; 
			SELECT 'Updates commited'; 
		END
코드 편집 및 실행