SET ANSI_DEFAULTS (Transact-SQL)
Управляет группой параметров SQL Server 2005, которые определяют поддержку стандарта SQL-92.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
SET ANSI_DEFAULTS { ON | OFF }
Замечания
SET ANSI_DEFAULTS является серверной настройкой, которая не изменяется клиентом. Клиент управляет собственными настройками. По умолчанию, эти настройки противоположны настройкам сервера. Пользователи не могут изменять этот серверный параметр. Чтобы изменить поведение клиента, пользователи должны использовать SQL_COPT_SS_PRESERVE_CURSORS. Дополнительные сведения см. в разделе SQLSetConnectAttr.
Если этот параметр установлен (ON), он включает следующие параметры SQL-92:
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 |
|
В совокупности эти параметры поддержки стандарта SQL-92 определяют порядок обработки запросов на все время работы сеанса пользователя, запуска триггера или хранимой процедуры. Однако эти параметры не включают всех настроек, необходимых для полного соответствия стандарту SQL-92.
При работе с индексами для вычисляемых столбцов и индексированных представлений в значение 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 и поставщик 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
См. также
Справочник
DBCC USEROPTIONS (Transact-SQL)
SET (Transact-SQL)
SET ANSI_NULL_DFLT_ON (Transact-SQL)
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL)
SET IMPLICIT_TRANSACTIONS (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL)