테이블 힌트
- NOLOCK: 다른 트랜잭션의 잠금을 피하고 읽기를 수행합니다. Dirty Read 가능성이 있습니다.
- READUNCOMMITTED: NOLOCK과 동일한 의미로 사용되며, 트랜잭션 격리 수준을 낮추어 사용합니다.
- READCOMMITTED: 트랜잭션 격리 수준을 유지하면서 읽기를 수행합니다.
- REPEATABLEREAD: 같은 범위 내에서 동일한 쿼리를 여러 번 실행해도 동일한 결과를 보장합니다.
- SERIALIZABLE: 가장 높은 트랜잭션 격리 수준으로 모든 읽기 및 쓰기에 잠금을 설정합니다.
- UPDLOCK: 읽은 데이터를 업데이트할 때 잠금을 설정하여 다른 트랜잭션이 해당 행을 수정하지 못하도록 합니다.
- TABLOCK: 전체 테이블에 대한 잠금을 설정하여 테이블을 읽거나 수정할 때 사용합니다.
- TABLOCKX: 테이블에 대한 배타적인 잠금을 설정하여 테이블을 수정할 때 사용합니다.
- PAGLOCK: 페이지에 대한 잠금을 설정하여 페이지 수준에서 작업을 수행합니다.
- XLOCK: 읽거나 수정할 때 범위 또는 행에 대한 배타적인 잠금을 설정합니다.
사용 예제
SELECT *
FROM TABLE WITH(NOLOCK)
SELECT *
FROM TABLE WITH(READUNCOMMITTED)