SET ANSI_DEFAULTS (Transact-SQL)

Controla um grupo de configurações do SQL Server que coletivamente especificam algum comportamento padrão ISO.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

SET ANSI_DEFAULTS { ON | OFF }

Comentários

SET ANSI_DEFAULTS é uma configuração do lado do servidor que o cliente não modifica. O cliente gerencia suas próprias configurações. Por padrão, essas configurações são o oposto da configuração de servidor. Os usuários não devem modificar a configuração de servidor. Para alterar o comportamento do cliente, os usuários devem usar SQL_COPT_SS_PRESERVE_CURSORS. Para obter mais informações, consulte SQLSetConnectAttr.

Quando ativada (ON), esta opção habilita as seguintes configurações 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

 

Juntas, essas opções SET padrão ISO definem o ambiente de processamento de consulta para a duração da sessão de trabalho do usuário, um gatilho em execução ou um procedimento armazenado. Entretanto, essas opções SET não incluem todas as opções exigidas para estar de acordo com padrão ISO.

Ao trabalhar com índices em colunas computadas e exibições indexadas, quatro desses padrões (ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS e QUOTED_IDENTIFIER) devem ser definidos como ON. Esses padrões estão entre as sete opções SET que devem ser atribuídas aos valores necessários para criar e alterar índices em colunas computadas e exibições indexadas. As outras opções de SET são ARITHABORT (ON), CONCAT_NULL_YIELDS_NULL (ON) e NUMERIC_ROUNDABORT (OFF). Para obter mais informações sobre as configurações da opção SET necessárias com exibições indexadas e índices em colunas computadas, consulte "Considerações sobre o uso das instruções SET" em SET (Transact-SQL).

O driver SQL Server Native Client ODBC e o SQL Server Native Client OLE DB Provider for SQL Server definem automaticamente ANSI_DEFAULTS como ON ao conectar. O driver e Provedor definem CURSOR_CLOSE_ON_COMMIT e IMPLICIT_TRANSACTIONS como OFF. As configurações OFF para SET CURSOR_CLOSE_ON_COMMIT e SET IMPLICIT_TRANSACTIONS podem ser definidas nas fontes de dados ODBC, nos atributos de conexão ODBC ou nas propriedades de conexão OLE DB do aplicativo antes de conectar ao SQL Server. O padrão para SET ANSI_DEFAULTS é OFF para conexões de aplicativos DB-Library.

Quando SET ANSI_DEFAULTS é gerado, SET QUOTED_IDENTIFIER é definido no momento da análise, e as seguintes opções são definidas em tempo de execução:

SET ANSI_NULLS

SET ANSI_WARNINGS

SET ANSI_NULL_DFLT_ON

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_PADDING

SET IMPLICIT_TRANSACTIONS

Permissões

Requer associação na função pública.

Exemplos

O exemplo a seguir define SET ANSI_DEFAULTS ON e usa a instrução DBCC USEROPTIONS para exibir as configurações que são afetadas.

-- 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