MS-SQL COMMIT과 ROLLBACK
MS-SQL SQL
문제점 😅
전에는 ORACLE을 사용했기 때문에, COMMIT과 ROLLBACK을 직접 실행시켜서 DB 데이터 처리를 진행했다. 현재 프로젝트는 MS-SQL을 사용하고 있고, 이전의 ORACLE 사용하던 때와는 달라서 몇 자 적어놓는다.
해결책 😏
ORACLE의 경우 INSERT, UPDATE, DELETE 문을 실행하고 나서 COMMIT 혹은 ROLLBACK을 실행시켜 데이터 처리가 가능하지만, MS-SQL은 보통 AUTO COMMIT(자동 커밋)을 한다. 따라서 우리는 트랜잭션(Transaction)을 잡아둬야 한다.
-- 1. 트랜잭션 설정
BEGIN TRAN;
-- 2. 데이터 조회
SELECT * FROM FRUIT_BASKET WHERE FRUIT_NAME = 'APPLE';
-- 3. 데이터 처리
UPDATE FRUIT_BASKET SET AMOUNT = 5 WHERE FRUIT_NAME = 'APPLE';
-- 4. 데이터 조회
SELECT * FROM FRUIT_BASKET WHERE FRUIT_NAME = 'APPLE';
-- 5-1. 최종 COMMIT
COMMIT TRAN;
-- 5-2. 이전 ROLLBACK
ROLLBACK TRAN;
마무리 😎
MS-SQL에서 INSERT, UPDATE, DELETE 문을 실행 시, 꼭 BEGIN TRAN; 실행 후 쿼리문 작성하는 습관을 들이자!