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)

Справка и поддержка

Получение помощи по SQL Server 2005