본문 바로가기
Database

SQL Server - SET 옵션

by soojitasan 2023. 4. 8. 12:09

SQL Server SET 자주쓰는 옵션 정리

 

① SET ANSI_NULLS

SET ANSI_NULLS ON : NULL = NULL 비교 시 값 반환 불가 ([컬럼명] IS NULL)

SET ANSI_NULLS OFF : NULL = NULL 비교 시 TRUE값 반환 ([컬럼명] = NULL)

 

 

② SET QUOTED_IDENTIFIER

SET QUOTED_IDENTIFIER ON : 큰따옴표(" ")는 개체 이름으로, 작은따옴표(' ')는 문자열로 사용

SET QUOTED_IDENTIFIER OFF : 큰따옴표 (" ") 및 작은따옴표(' ')를 모두 문자열로만 사용

 

 

③ SET NOCOUNT

SET NOCOUNT ON : 영향을 받은 행 수 메시지를 리턴값으로 받지 않음

SET NOCOUNT OFF : 영향을 받은 행 수 메시지를 리턴값으로 받음

 

 

④ SET XACT_ABORT

SET XACT_ABORT ON : 런타임 오류 발생 시 전체를 ROLL BACK

SET XACT_ABORT OFF : 런타임 오류 발생 시 오류난 부분만 ROLL BACK하고 나머지 쿼리문은 COMMIT

 

 

⑤ SET ROWCOUNT

SET ROWCOUNT N : n개의 행만 반환

SET ROWCOUNT 0 : 모든 행 반환

 

 

⑥ SET ANSI_PADDING

SET ANSI_PADDING ON : CHAR(n) 컬럼에 n보다 작은 문자열 입력 시 공백 포

SET ANSI_PADDING OFF : CHAR(n) 컬럼에 n보다 작은 문자열 입력 시 공백 미포함

 

 

⑦ SET STATISTICS IO

SET STATISTICS IO ON : 통계정보 표시

SET STATISTICS IO OFF : 통계정보 미표시

 

 

⑧ SET TRANSACTION ISOLATION LEVEL ... 잠금 수준 관련

READ UNCOMMITTED : 캐시에는 변경되었으나 디스크에는 변경되지 않는 데이터를 읽는 행위 허용 (DIRTY READ)

READ COMMITTED : (기본값) 한번 읽은 데이터가 트랜잭션 커밋 이전에 변경되어 다시 읽었을 때 새로운 값으로 읽는 행위 허용 (UNREPEATABLE READ)

REPEATABLE READ : 트랜잭션 실행 중 삭제/신규 데이터를 읽는 행위 허용 (PHANTOM READ)

SNAPSHOT : 트랜잭션 실행 중 INSERT/DELETE 제한

SERIALIZABLE : 트랜잭션 실행 중 INSERT/DELETE 시 tempdb에 우선 적용 후, 트랜잭션 종료 시 원래 테이블에 적용

 

 


참고 자료

https://learn.microsoft.com/ko-kr/sql/t-sql/statements/set-statements-transact-sql?view=sql-server-ver16 
http://egloos.zum.com/sweeper/v/3005129

https://yamoe.tistory.com/206