TRY...CATCH 구성에서 @@TRANCOUNT 확인하기
계정 10의 소유자가 추첨에 당첨되어 $200을 받게 되었어요. 계정 10의 current_balance에 $200을 더하는 간단한 스크립트를 준비했어요. 모든 것을 올바르게 작성했다고 생각하지만, 코드를 다시 확인하고 싶어요.
사실, 금액을 더할 때 사소한 실수를 했어요: SET current_balance = 'current_balance' + 200. 'current_balance'를 문자열로 적어서 오류가 발생해요.
작성할 스크립트는 오류가 발생하면 열린 트랜잭션이 있는지 확인한 뒤 모든 변경 사항을 롤백해야 해요. 모든 것이 정상이라면, 역시 열린 트랜잭션이 있는지 확인하고 커밋해야 해요.
이 연습은 강의의 일부입니다
SQL Server에서의 트랜잭션과 오류 처리
연습 안내
- 트랜잭션을 시작하세요.
- 연산의 실수를 수정하세요.
TRY블록 안에서 트랜잭션이 있는지 확인하고 커밋하세요.CATCH블록 안에서 트랜잭션이 있는지 확인하고 롤백하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
BEGIN TRY
-- Begin the transaction
___ ___;
-- Correct the mistake
UPDATE accounts SET current_balance = 'current_balance' + 200
WHERE account_id = 10;
-- Check if there is a transaction
IF ___ > 0
-- Commit the transaction
___ ___;
SELECT * FROM accounts
WHERE account_id = 10;
END TRY
BEGIN CATCH
SELECT 'Rolling back the transaction';
-- Check if there is a transaction
IF ___ > 0
-- Rollback the transaction
___ ___;
END CATCH