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


SET ANSI_DEFAULTS (Transact-SQL)

Управляет группой параметров SQL Server, которая задает определенное поведение стандарта ISO.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

SET ANSI_DEFAULTS { ON | OFF }

Замечания

SET ANSI_DEFAULTS является серверной настройкой, которая не изменяется клиентом. Клиент управляет собственными настройками. По умолчанию эти настройки противоположны настройкам сервера. Пользователи не могут изменять этот серверный параметр. Чтобы изменить поведение клиента, пользователи должны использовать SQL_COPT_SS_PRESERVE_CURSORS. Дополнительные сведения см. в разделе SQLSetConnectAttr.

При включении (ON) этого параметра включаются следующие параметры ISO.

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 стандарта ISO определяют среду обработки запросов на все время сеанса пользователя, выполнения триггера или хранимой процедуры. Однако эти параметры SET не охватывают всех настроек, необходимых для полного соответствия стандарту ISO.

При работе с индексами для вычисляемых столбцов и индексированных представлений в значение ON должны быть установлены следующие четыре значения по умолчанию: ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS и QUOTED_IDENTIFIER. Кроме них при создании и изменении индексов для вычисляемых столбцов и индексированных представлений должны быть установлены следующие параметры SET: ARITHABORT (ON), CONCAT_NULL_YIELDS_NULL (ON) и NUMERIC_ROUNDABORT (OFF). Дополнительные сведения о необходимых установках параметров SET для индексированных представлений и индексов для вычисляемых столбцов см. в подразделе «Анализ использования операторов SET» в разделе SET (Transact-SQL).

При соединении с драйвером ODBC для собственного клиента SQL Server или поставщика OLE DB для собственного клиента SQL Server параметр ANSI_DEFAULTS автоматически устанавливается в значение ON. а CURSOR_CLOSE_ON_COMMIT и IMPLICIT_TRANSACTIONS значение OFF. Значение OFF для параметров SET CURSOR_CLOSE_ON_COMMIT и SET IMPLICIT_TRANSACTIONS можно указать в источнике данных ODBC, в атрибутах соединения ODBC или в свойствах соединения OLE DB, которые присваиваются в приложении перед подключением к SQL Server. SET ANSI_DEFAULTS при соединении из приложений DB-Library имеет значение по умолчанию OFF.

При выполнении инструкции SET ANSI_DEFAULTS параметр SET QUOTED_IDENTIFIER устанавливается на стадии синтаксического анализа, а на стадии выполнения устанавливаются следующие параметры:

SET ANSI_NULLS

SET ANSI_WARNINGS

SET ANSI_NULL_DFLT_ON

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_PADDING

SET IMPLICIT_TRANSACTIONS

Разрешения

Необходимо членство в роли public.

Примеры

В следующем примере устанавливается SET ANSI_DEFAULTS ON и выполняется инструкция DBCC USEROPTIONS для просмотра изменившихся параметров.

-- SET ANSI_DEFAULTS ON.
SET ANSI_DEFAULTS ON
GO
-- Display the current settings.
DBCC USEROPTIONS
GO
-- SET ANSI_DEFAULTS OFF.
SET ANSI_DEFAULTS OFF
GO