Opções SET
A tabela a seguir fornece uma lista alfabética de opções SET e do banco de dados correspondente, além da opção do servidor que o Microsoft SQL Server oferece suporte.
Opção SET |
Opção de banco de dados |
Opção de servidor |
Configuração padrão |
---|---|---|---|
Nenhuma |
Nenhuma |
Não aplicável |
|
ANSI_NULL_DEFAULT |
user options atribui um padrão |
OFF |
|
ANSI_NULLS |
user options atribui um padrão |
OFF |
|
ANSI_PADDING |
user options atribui um padrão |
ON |
|
ANSI_WARNINGS |
user options atribui um padrão |
OFF |
|
ARITHABORT |
user options atribui um padrão |
OFF |
|
Nenhuma |
user options atribui um padrão |
OFF |
|
CONCAT_NULL_YIELDS_NULL |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
CURSOR_CLOSE ON_COMMIT |
user options atribui um padrão |
OFF |
|
Nenhuma |
Nenhuma |
7 |
|
Nenhuma |
Nenhuma |
mdy |
|
Nenhuma |
Nenhuma |
NORMAL |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
|
OFF |
|
Nenhuma |
user options atribui um padrão |
OFF |
|
Nenhuma |
Nenhuma |
us_english |
|
Nenhuma |
Nenhuma |
Não há limite |
|
Nenhuma |
user options atribui um padrão |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
NUMERIC_ROUNDABORT |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
query governor cost limit |
OFF |
|
identificador citado |
user options atribui um padrão |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
OFF |
|
Nenhuma |
Nenhuma |
n/d |
|
Nenhuma |
Nenhuma |
OFF |
Opções SET de Tempo de Análise e Tempo de Execução
O ponto ao qual uma opção SET entra em vigor depende se a opção é uma opção de tempo de análise ou uma opção de tempo de execução. As opções de tempo de análise entram em vigor durante a análise, já que as opções são encontradas em texto, sem levar em conta o controle das instruções de fluxo. As opções de tempo de execução entram em vigor durante a execução do código no qual eles são especificados. Se a execução falhar antes que a instrução SET seja executada, a opção não é definida. Se a execução falhar antes que a instrução SET seja executada, a opção não é definida.
As opções QUOTED_IDENTIFIER, PARSEONLY, OFFSETS, e FIPS_FLAGGER são opções de tempo de análise. Todas as outras opções SET são opções de tempo de execução.
As instruções SET QUOTED_IDENTIFIER e SET ANSI_NULLS que ocorram dentro de um lote ou de um procedimento armazenado não afetam esse lote ou procedimento armazenado. Em vez disso, as configurações usadas para as instruções dentro do lote ou procedimento armazenado são as configurações vigentes quando o lote ou procedimento armazenado é criado.
Durações das opções SET
Esta seção descreve a duração das opções SET.
As opções SET definidas por um usuário em um script são aplicáveis até que a sessão do usuário com o servidor seja terminada.
As opções SET definidas em um procedimento armazenado ou gatilho são aplicáveis até que eles sejam reiniciados dentro daquele procedimento armazenado ou gatilho, ou até que o controle retorne ao código que invocou o procedimento armazenado ou gatilho.
Uma conexão habilitada por MARS mantém uma lista de valores padrão de opção SET. Quando um lote executa sob essa conexão, os valores padrão de opção SET são copiados para o ambiente da solicitação. Depois que o lote terminar, o ambiente é copiado de volta para o padrão da sessão. Dessa forma, lotes múltiplos que executam ao mesmo tempo sob a mesma conexão funcionam sob um ambiente isolado de opções SET.
Observação Sob conexões habilitadas por MARS, se lotes múltiplos executarem ao mesmo tempo e modificarem o ambiente de execução de lote, o ambiente padrão resultante para a conexão dependerá do último lote que tenha completado a execução.
A menos que explicitamente reinicializado, os valores de opção SET de todos os códigos de alto nível aplicam dentro de um procedimento armazenado ou gatilho.
As opções SET definidas por um usuário dentro de um lote de SQL dinâmico se aplicam apenas para a duração daquele lote.
A menos que explicitamente ou implicitamente reinicializadas, as opções SET definidas para uma conexão se aplicam depois de conectarem a um banco de dados diferente.
Observação Uma consideração adicional é quando um usuário se conecta a um banco de dados e alguma opção pode ser definida automaticamente como ON, com base nos valores especificados pelo uso anterior das user options, opção de servidor ou os valores que se aplicam a todas as conexões ODBC e OLE DB.
Atalho da opção SET
O Transact-SQL fornece a instrução SET ANSI_DEFAULTS como um atalho para definir opções padrão 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
O atalho zera o valor para estas opções. Qualquer opção individual que seja definida após o atalho anulará o valor correspondente definido pelo atalho.
Observação |
---|
SET ANSI_DEFAULTS não define todas as opções necessárias para obedecerem o padrão ISO. |