SET ANSI_DEFAULTS (Transact-SQL)

Область применения:SQL Server Управляемый экземпляр SQL Azure Azure Synapse Analytics Analytics Platform System (PDW)SQL AnalyticsEndpoints в хранилище 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

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Замечания

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 (ON), CONCAT_NULL_YIELDS_NULL (ON) и NUMERIC_ROUNDABORT (OFF). Дополнительные сведения о необходимых параметрах SET с индексируемыми представлениями, отфильтрованные индексы и индексы вычисляемых столбцов см . в статьях "Рекомендации при использовании инструкций SET".

При соединении с драйвером ODBC для SQL Server Native Client или поставщика OLE DB для SQL Server Native Client для 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.

При выполнении инструкции SET 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)