참고
BEGIN TRANSACTION(Transact-SQL) - SQL Server
명시적 로컬 트랜잭션의 시작 위치를 표시합니다. 명시적 트랜잭션은 BEGIN TRANSACTION 문으로 시작되어 COMMIT 또는 ROLLBACK 문으로 끝납니다.
learn.microsoft.com
BEGIN TRAN
...
COMMIT || ROLLBACK
- MSSQL 기본 설정 : AUTO-COMMIT이다.
- INSERT, UPDATE, DELETE 명령문을 사용 후 자동으로 COMMIT이 되면, 실수한 경우 큰 문제가 발생할 수 있다.
- 이런 문제를 방지하기 위해 사용할 수 있는 명령어다.
- 음.. 나는 프로님이 디비버 설정 변경해주셔서 직접 커밋해야만 적용되긴하지만, 알아두면 좋지
BEGIN TRAN
- 명시적 로컬 트랜잭션 시작 위치를 표시한다.
- 해당 명령문을 실행하면, TRANSACT-SQL 문을 지원하기 위해 리소드들이 트랜잭션에 의해 잠긴다.
- 트랜잭션이 장기간 처리중이면, 그동안 다른 사용자가 잠신 리소스에 접근할 수 없다.
COMMIT || ROLLBACK
- 트랜잭션이 오류없이 완료되고 수정한 내용을 데이터베이스에 저장하고 싶다면 COMMIT 명령어를 사용하면 된다.
- 만약 오류가 발생하면, ROLLBACK 명령어를 사용해 BEGIN TRAN을 실행하기 전 상태로 돌릴 수 있다.
- 이 명령문을 사용하지 않으면, TRANSACTION이 계속 잡혀있는 상태로 DB가 정상작동하지 않는다. 리소스가 잠기기 때문이다.
주의
- DROP, TRUNCATE와 같은 명령어는 ROLLBACK이 적용되지 않으므로 주의해야한다.
- BEGIN TRAN을 실행 후
- DELETE || UPDATE || INSERT 문을 실행 후
- SELECT를 실행해 제대로 적용됐는지 확인한다.
- 후에 결과를 보고 COMMIT || ROLLBACK을 수행하면 된다.
'회사 > DB' 카테고리의 다른 글
[DB] 파티션 프루닝 (PARTITION PRUNING) (0) | 2024.10.28 |
---|---|
[DB / MSSQL] COLLATION (정렬방식) (0) | 2024.10.16 |
[DB/SQL] AND / OR 우선순위 (1) | 2024.09.25 |
[DB] 인덱스와 파티션 차이 (1) | 2024.09.09 |
[DB / MSSQL] 중복 레코드 관리 (0) | 2024.04.04 |