다음을 통해 공유


SET 옵션

다음 표에서는 MicrosoftSQL Server에서 지원하는 SET 옵션과 해당 데이터베이스 및 서버 옵션을 사전순으로 나열합니다.

SET 옵션

데이터베이스 옵션

서버 옵션

기본 설정

SET ANSI_DEFAULTS(Transact-SQL)

없음

없음

해당 사항 없음

SET ANSI_NULL_DFLT_OFF(Transact-SQL)

SET ANSI_NULL_DFLT_ON(Transact-SQL)

ANSI_NULL_DEFAULT

user options로 기본값 지정

OFF

SET ANSI_NULLS (Transact-SQL)

ANSI_NULLS

user options로 기본값 지정

OFF

SET ANSI_PADDING(Transact-SQL)

ANSI_PADDING

user options로 기본값 지정

ON

SET ANSI_WARNINGS(Transact-SQL)

ANSI_WARNINGS

user options로 기본값 지정

OFF

SET ARITHABORT(Transact-SQL)

ARITHABORT

user options로 기본값 지정

OFF

SET ARITHIGNORE(Transact-SQL)

없음

user options로 기본값 지정

OFF

SET CONCAT_NULL_YIELDS_NULL(Transact-SQL)

CONCAT_NULL_YIELDS_NULL

없음

OFF

SET CONTEXT_INFO(Transact-SQL)

없음

없음

OFF

SET CURSOR_CLOSE_ON_COMMIT(Transact-SQL)

CURSOR_CLOSE ON_COMMIT

user options로 기본값 지정

OFF

SET DATEFIRST(Transact-SQL)

없음

없음

7

SET DATEFORMAT(Transact-SQL)

없음

없음

mdy

SET DEADLOCK_PRIORITY(Transact-SQL)

없음

없음

NORMAL

SET FIPS_FLAGGER(Transact-SQL)

없음

없음

OFF

SET FMTONLY(Transact-SQL)

없음

없음

OFF

SET FORCEPLAN(Transact-SQL)

없음

없음

OFF

SET IDENTITY_INSERT(Transact-SQL)

없음

 

OFF

SET IMPLICIT_TRANSACTIONS(Transact-SQL)

없음

user options로 기본값 지정

OFF

SET LANGUAGE(Transact-SQL)

없음

없음

us_english

SET LOCK_TIMEOUT(Transact-SQL)

없음

없음

제한 없음

SET NOCOUNT(Transact-SQL)

없음

user options로 기본값 지정

OFF

SET NOEXEC(Transact-SQL)

없음

없음

OFF

SET NUMERIC_ROUNDABORT(Transact-SQL)

NUMERIC_ROUNDABORT

없음

OFF

SET OFFSETS(Transact-SQL)

없음

없음

OFF

SET PARSEONLY(Transact-SQL)

없음

없음

OFF

SET QUERY_GOVERNOR_COST_LIMIT(Transact-SQL)

없음

query governor cost limit

OFF

SET QUOTED_IDENTIFIER(Transact-SQL)

quoted identifier

user options로 기본값 지정

OFF

SET REMOTE_PROC_TRANSACTIONS(Transact-SQL)

없음

없음

OFF

SET ROWCOUNT (Transact-SQL)

없음

없음

OFF

SET SHOWPLAN_ALL(Transact-SQL)

없음

없음

OFF

SET SHOWPLAN_TEXT(Transact-SQL)

없음

없음

OFF

SET SHOWPLAN_XML(Transact-SQL)

없음

없음

OFF

SET STATISTICS IO(Transact-SQL)

없음

없음

OFF

SET STATISTICS PROFILE(Transact-SQL)

없음

없음

OFF

SET STATISTICS TIME(Transact-SQL)

없음

없음

OFF

SET STATISTICS XML(Transact-SQL)

없음

없음

OFF

SET TEXTSIZE(Transact-SQL)

없음

없음

OFF

SET TRANSACTION ISOLATION LEVEL(Transact-SQL)

없음

없음

n/a

SET XACT_ABORT(Transact-SQL)

없음

없음

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 표준을 따르기 위해 필요한 옵션을 모두 설정하지는 않습니다.