+ 트랜잭션의 조건
원자성 - 트랜잭션은 더 이상 나눌 수 없는 단위로 구성되어야 한다.
일관성 - 트랜잭션이 수행된 후 모든 데이터는 무결성을 유지해야 한다.
격리성 - 현재 변경 작업이 진행중인 트랜잭션의 대상 데이터는 잠금 상태(LOCK)가 되어 다른 트랜잭션에 의해 접근이 허용되어서는 안된다.
@ 자동커밋 트랜잭션
- SQL-SERVER는 기본 트랜잭션 모드가 자동 커밋으로 동작한다.
@ 명시적 트랜잭션
- 트랜잭션의 시작과 끝을 모두 명시하는 방법으로 BEGIN TRAN, COMMIT TRAN, ROLLBACK TRAN 문 등을 이용한다.
명시적 트랜잭션은 ROLLBAKC 이나 COMMIT 으로 끝나지 않으면 트랜잭션이 계속 잠금상태로 남아 있으므로 주의해야 한다.
BEGIN TRAN - 명시적 트랜잭션의 시작 위치
COMMIT TRAN - 데이터 변경작업의 결과를 실제 데이터베이스에 적용하도록 하는 구문. COMMIT 된 후의 데이터베이스는 변경전으로 되돌릴 수 없다.
ROLLBACK TRAN - 데이터 변경작업 취소하고, 데이터베이스의 내용은 트랜잭션 작업 이전의 상태로 되돌린다. 여기서 전체 트랜잭션의 내용을 취소하지 않기 위해 특정 지점에 저장점(SAVE POINT)을 지정하면 저장점이 있는 부분까지만 트랜잭션을 취소할 수 있다.
SAVE TRAN - 저장점을 지정하기 위한 구문으로 지정된 저장점까지 ROLLBACK으로 트랜잭션을 취소할 수 있다.
Posted by 홍반장