SET ANSI_DEFAULTS (Transact-SQL)
Управляет группой параметров SQL Server, которая задает определенное поведение стандарта ISO.
Синтаксис
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
См. также