SET 옵션
다음 표에서는 MicrosoftSQL Server에서 지원하는 SET 옵션과 해당 데이터베이스 및 서버 옵션을 사전순으로 나열합니다.
SET 옵션 |
데이터베이스 옵션 |
서버 옵션 |
기본 설정 |
---|---|---|---|
없음 |
없음 |
해당 사항 없음 |
|
ANSI_NULL_DEFAULT |
user options로 기본값 지정 |
OFF |
|
ANSI_NULLS |
user options로 기본값 지정 |
OFF |
|
ANSI_PADDING |
user options로 기본값 지정 |
ON |
|
ANSI_WARNINGS |
user options로 기본값 지정 |
OFF |
|
ARITHABORT |
user options로 기본값 지정 |
OFF |
|
없음 |
user options로 기본값 지정 |
OFF |
|
CONCAT_NULL_YIELDS_NULL |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
CURSOR_CLOSE ON_COMMIT |
user options로 기본값 지정 |
OFF |
|
없음 |
없음 |
7 |
|
없음 |
없음 |
mdy |
|
없음 |
없음 |
NORMAL |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
|
OFF |
|
없음 |
user options로 기본값 지정 |
OFF |
|
없음 |
없음 |
us_english |
|
없음 |
없음 |
제한 없음 |
|
없음 |
user options로 기본값 지정 |
OFF |
|
없음 |
없음 |
OFF |
|
NUMERIC_ROUNDABORT |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
query governor cost limit |
OFF |
|
quoted identifier |
user options로 기본값 지정 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
OFF |
|
없음 |
없음 |
n/a |
|
없음 |
없음 |
OFF |
구문 분석 시간 및 실행 시간 SET 옵션
SET 옵션이 적용되는 시기는 옵션이 구문 분석 시간 옵션인지 실행 시간 옵션인지에 따라 달라집니다. 구문 분석 시간 옵션은 흐름 제어 문에 관계 없이 구문 분석 중 텍스트에서 옵션이 나타날 때 바로 적용됩니다. 실행 시간 옵션은 지정된 코드 실행 중 적용됩니다. SET 문을 실행하기 전에 실행이 실패하면 옵션이 설정되지 않습니다. SET 문 다음에 실행이 실패하면 옵션이 설정됩니다.
QUOTED_IDENTIFIER, PARSEONLY, OFFSETS 및 FIPS_FLAGGER 옵션은 구문 분석 시간 옵션입니다. 기타 모든 SET 옵션은 실행 시간 옵션입니다.
일괄 처리 또는 저장 프로시저 내에서 발생하는 SET QUOTED_IDENTIFIER 및 SET ANSI_NULLS 문은 해당 일괄 처리 또는 저장 프로시저에는 영향을 주지 않습니다. 일괄 처리나 저장 프로시저 내의 문에 사용된 설정은 해당 일괄 처리나 저장 프로시저를 만들 때 적용됩니다.
SET 옵션의 기간
이 절에서는 SET 옵션의 기간에 대해 설명합니다.
사용자가 스크립트에서 설정한 SET 옵션은 다시 설정하거나 서버가 있는 사용자 세션을 종료할 때까지 적용됩니다.
저장 프로시저나 트리거 내에서 설정한 SET 옵션은 해당 저장 프로시저나 트리거 내에서 다시 설정하거나 제어가 저장 프로시저나 트리거를 호출한 코드로 반환될 때까지 적용됩니다.
MARS 사용 가능한 연결은 기본 SET 옵션 값 목록을 유지합니다. 이 연결에서 일괄 처리를 실행하면 기본 SET 옵션 값이 요청 환경으로 복사됩니다. 일괄 처리가 끝나면 해당 환경을 세션 기본값에 다시 복사합니다. 격리된 SET 옵션 환경으로 실행되는 같은 연결에서 이런 방법으로 여러 일괄 처리를 동시에 실행할 수 있습니다.
[!참고]
MARS 사용 가능한 연결에서 여러 일괄 처리가 동시에 실행되고 일괄 처리 실행 환경을 수정하는 경우, 연결에 대한 결과 기본 환경은 실행을 완료한 마지막 일괄 처리에 따라 달라집니다.
명시적으로 다시 설정하지 않는 한, 모든 상위 수준 코드로부터의 SET 옵션 값이 저장 프로시저나 트리거 내에 적용됩니다.
동적 SQL 일괄 처리 내에서 사용자가 설정한 SET 옵션은 해당 일괄 처리 기간에만 적용됩니다.
명시적이나 암시적으로 다시 설정하지 않는 한, 한 연결에 대해 설정한 SET 옵션은 다른 데이터베이스에 연결한 후에 적용됩니다.
[!참고]
사용자가 데이터베이스에 연결할 때는 이전 user options 사용 시 지정한 값, 서버 옵션 또는 모든 ODBC 및 OLE DB 연결에 적용된 값을 기준으로 ON으로 자동 설정되는 옵션도 있다는 것을 명심해야 합니다.
SET 옵션 바로 가기
Transact-SQL은 이러한 ISO 표준 옵션을 설정하기 위한 바로 가기로 SET ANSI_DEFAULTS 문을 제공합니다.
SET ANSI_NULLS
SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_NULL_DFLT_ON
SET IMPLICIT_TRANSACTIONS
SET ANSI_PADDING
SET QUOTED_IDENTIFIER
SET ANSI_WARNINGS
바로 가기는 위와 같은 옵션의 값을 다시 설정합니다. 바로 가기를 사용한 다음 각 옵션을 다시 설정하면 바로 가기로 설정한 해당 값은 무시됩니다.
[!참고]
SET ANSI_DEFAULTS는 ISO 표준을 따르기 위해 필요한 옵션을 모두 설정하지는 않습니다.