SET ANSI_DEFAULTS (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure конечную точку аналитики платформы Аналитики Azure Synapse Analytics (PDW) в хранилище Microsoft Fabricв Microsoft Fabric

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

Синтаксис для SQL Server, бессерверный пул SQL в Azure Synapse Analytics, Microsoft Fabric

SET ANSI_DEFAULTS { ON | OFF }

Синтаксис для Системы платформы Azure Synapse Analytics и Analytics (PDW)

SET ANSI_DEFAULTS ON

Замечания

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.

При работе с индексами для вычисляемых столбцов, отфильтрованных индексов и индексированных представлений четыре из этих значений по умолчанию (ANSI_NULLS, ANSI_PADDINGANSI_WARNINGSQUOTED_IDENTIFIERи) должны иметь значение ON. Эти значения по умолчанию входят в число семи SET вариантов, которым необходимо присваивать необходимые значения при создании и изменении индексов на вычисленных столбцах, отфильтрованных индексах и индексированных представлениях. Другие SET варианты — ARITHABORT (ВКЛЮЧЕНО), CONCAT_NULL_YIELDS_NULL (ВКЛЮЧЕНО) и NUMERIC_ROUNDABORT (ВЫКЛЮЧЕНО). Для получения дополнительной информации о необходимых SET настройках опций с индексированными представлениями, отфильтрованными индексами и индексами в вычисленных столбцах см. раздел «Соображения при использовании операторовSET».

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

При SETSET ANSI_DEFAULTS выдаче 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.

Примеры

Следующий пример устанавливается 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)