트랜잭션 제어문 (TCL)
COMMIT
-- 트랜잭션의 마지막 명령어가 수행되었음을 나타냄
-- 트랜잭션에 의한 변경을 확정
-- COMMIT 된 트랜잭션은 철회가 불가능함
-- COMMIT 명령문 실행하기 전에 하나의 트랜잭션 변경한 결과를 다른
-- 트랜잭션에서 접근할 수 없도록 방지하여 일관성을 유지함
ROLLBACK
-- 트랜잭션의 변경을 취소하고 트랜잭션 종료
SAVEPOINT
-- 현재 트랜잭션에서 ROLLBACK 시킬 위치 지정
-- 대규모 트랜잭션 ( 복수개의 명령어들로 이루진 트랜잭션 ) 에서 오류 발생이
전체 트랜잭션을 취소 시키는 것이 큰 부담이 될 수 있음
-- 실패한 일정부분만 취소 시키도록 함
ㅁ
트랜잭션 모드
1. 자동 커밋 트랜잭션
-- 하나의 명령문이 하나의 트랙잭션이 됨
-- MS-SQL 에서 기본 모드임
2. 명시적 트랜잭션
-- 명시적으로 사용자가 트랙잭션을 정의하는 형태
-- BEGIN TRAN ~ COMMIT TRAN( 또는 ROLLBACK TRAN) 으로 이루어짐
3. 묵시적 트랜잭션
-- 자동 커밋 트랜잭션의 반대되는 개념
-- 사용자가 COMMIT TRAN( 또는 ROLLBACK TRAN) 을 입력하기 전까지 복수개의 명령문을 하나의 트랜잭션으로 간주함
-- BEGIN TRAN 이 필요 없음
-- 묵시적 트랜잭션의 설정
SET IMPLICIT TRANSACTIONS {ON|OFF}
-- 트랜잭션 종료마다 사용자가 반드시 COMMIT / ROLLBAK 을 명령문을 실행시켜야 함
-- 고급 사용자가 아닌 이상 가능한 사용하지 않는 것이 좋음
트랜잭션 제어문 (TCL) 활용
간단한 트랜잭션 철회
오류발생에 따른 트랜잭션 철회
-- 트랜잭션을 구성하는 명령문들 중에서 오류가 발생되면 트랜잭션을 철회하고 그렇지 않으면 완료하는 것이 필요
SAVEPOINT 를 이용한 트랜잭션 부분 철회
-- 트랜잭션 내에서 SAVEPOINT 의 지정
SAVE TRAN 저장점명
-- 저장점 위치로 취소
ROLLBACK TRAN 저장점명
'Programming > SQL' 카테고리의 다른 글
[SQL] 집합연산자 - union / intersect / except / union all (0) | 2020.12.17 |
---|---|
[SQL/실습] 트랜잭션의 활용 (0) | 2020.12.17 |
[SQL] 트랜잭션(Transaction) - 트랜잭션의 활용 / 특성 / ACID (0) | 2020.12.17 |
[SQL] 다양한 중첩 질의문 - 다중 컬럼 서브쿼리 / 상호 연관 서브쿼리 / 중첩질의문 주의점 (0) | 2020.12.17 |
[SQL] 중첩질의문 - 단일행 서브쿼리 / 다중행 서브쿼리 / 비교연산자 (0) | 2020.12.17 |