Поделиться через


Параметры SET

В следующей таблице приведен список параметров инструкции SET (в алфавитном порядке) и соответствующие параметры сервера и базы данных, поддерживаемые Microsoft SQL Server.

Параметр 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)

Заключенный в кавычки идентификатор

Значение по умолчанию берется из 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)

Нет

Нет

н/д

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 не переустанавливаются явно, то все их значения, заданные в объемлющем коде, распространяются на вложенные хранимые процедуры или триггеры.

  • Параметры SET, установленные пользователем в динамическом пакете SQL, действуют только во время его выполнения.

  • Если параметры SET, установленные на уровне соединения, не переустанавливаются явно или неявно, они применяются при подключении к другой базе данных.

    ПримечаниеПримечание

    Иногда при подключении к базе данных некоторые параметры могут быть автоматически включены, в зависимости от значений, заданных при предыдущем использовании user options, параметра сервера или значений, которые применяются ко всем соединениям ODBC и OLE DB.

Параметр SET для быстрой настройки

Инструкция Transact-SQL SET ANSI_DEFAULTS позволяет одновременно установить следующие параметры стандарта ISO:

  • 7. SET ANSI_NULLS

  • SET CURSOR_CLOSE_ON_COMMIT

  • 2. SET ANSI_NULL_DFLT_ON

  • 3. SET IMPLICIT_TRANSACTIONS

  • 5. SET ANSI_PADDING

  • 1. SET QUOTED_IDENTIFIER

  • 6. SET ANSI_WARNINGS

Данный параметр переустанавливает значения перечисленных параметров. Установка отдельных параметров перезапишет значение, установленные быстрой настройкой.

ПримечаниеПримечание

Инструкция SET ANSI_DEFAULTS устанавливает не все параметры, соответствующие стандарту ISO.

См. также

Справочник

Основные понятия