[SQL] TIP #1 TCL(TRANSACTION CONTROL LANGUAGE)

개발Velog·2020년 7월 20일
1

MSSQL

목록 보기
1/1

A. SQL COMMIT, ROLLBACK. SAVEPOINT 설명

위키백과에 따르면 변경된 상황을 확정짓고 사용자들에게 보여주는 일로 정의 되어있다.

1. COMMIT
사용자가 INSERT, UPDATE, DELETE를 순서대로 실행했을 때,
데이터베이스에 바로 적용이 되는 것이 아니라,
COMMIT명령을 실행을 해야만 적용이 완료되면서 사용자들에게 제공.

2. ROLLBACK
COMMIT하기 전 ROOLBACK 명령어를 사용하게 되면,
COMMIT전 작업을 취소되며 이전 데이터는 다시 재저장.

3. SAVEPOINT
SAVEPOINT하기 일부 데이터만 ROLLBACK 가능.
같은 이름으로 SAVEPOINT를 걸었을 때 뒤에 건 SAVEPOINT만 유효

B. MSSQL BEGIN TRAN 사용법


BEGIN TRY	
	BEGIN TRAN
		BEGIN
			//UPDATE, INSERT, DELETE 구문
		END					   
	COMMIT TRAN		
END TRY

BEGIN CATCH
	IF (XACT_STATE() <> 0) ROLLBACK TRAN;
END CATCH
  • 현업에서 제일 많이 사용하는 구문중에 하나인데,
    UPDATE, INSERT, DELETE문이 실패할 경우 이전상태로 ROLLBACK
  • 데이터가 유실될 걱정이 없으니 적극적으로 활용.

C. MSSQL AUTO COMMIT

  • MSSQL에서는 기본적으로 AUTO COMMIT으로 설정.
  • 도구 > 옵션 > 쿼리 실행 > SQL Server > ANSI에서
    SET IMPLICIT_TRANSACTIONS를 체크하게 되면 AUTO COMMIT 기능이 해제.

결론
AUTO COMMIT를 해제 시키거나,
BEGIN TRAN 구문을 사용하여 데이터 유실 위험을 최소화 하자 !!!!!!!!

출처 및 참조 : https://mozi.tistory.com/209
profile
안녕하세요. 데이터와 동고동락 중인 개발자 입니다.

0개의 댓글