SQL Server tem um
ANSI_NULLS
configuração que determina como NULL
os valores são avaliados quando comparados a outro valor com o Equals (=
) e Diferente de (<>
) operadores de comparação. Embora seja verdade que você pode alterar o
ANSI_NULLS
configuração no nível da sessão (usando SET ANSI_NULLS
), cada banco de dados também tem seu próprio ANSI_NULLS
contexto. Você pode verificar seu banco de dados para ver se seu
ANSI_NULLS
configuração está ON
ou OFF
. Para fazer isso com o T-SQL, você pode usar o
sys.databases
visualização de catálogo ou o DATABASEPROPERTYEX()
função. Os sys.databases
Visualizar
Os
sys.databases
A exibição de catálogo contém muitas informações sobre cada banco de dados em sua instância do SQL Server. A consulta a seguir retorna o
ANSI_NULLS
configuração para a Music
base de dados:SELECT is_ansi_nulls_on
FROM sys.databases
WHERE name = 'Music';
Resultado:
+--------------------+ | is_ansi_nulls_on | |--------------------| | 1 | +--------------------+
Nesse caso,
ANSI_NULLS
está ON
para este banco de dados. Podemos desativá-lo
OFF
assim:ALTER DATABASE Music
SET ANSI_NULLS OFF;
Você pode eliminar o
WHERE
cláusula ao usar o sys.databases
exibição de catálogo para retornar dados para todos os bancos de dados. Assim:SELECT
name,
is_ansi_nulls_on
FROM sys.databases
ORDER BY name ASC;
Esta visualização também tem uma coluna chamada
is_ansi_null_default_on
, que retorna o ANSI_NULL_DEFAULT
configuração para o banco de dados. O
ANSI_NULL_DEFAULT
configuração determina o valor padrão, NULL
ou NOT NULL
, de uma coluna ou tipo CLR definido pelo usuário para o qual a nulidade não está explicitamente definida em CREATE TABLE
ou ALTER TABLE
declarações. Poderíamos modificar o exemplo anterior para incluir esta coluna:
SELECT
name,
is_ansi_nulls_on,
is_ansi_null_default_on
FROM sys.databases
ORDER BY name ASC;
A DATABASEPROPERTYEX()
Função
Outra maneira de verificar essas configurações é com o
DATABASEPROPERTYEX()
função. Veja como verificar o
ANSI_NULLS
configuração para a Music
DB:SELECT DATABASEPROPERTYEX('Music','IsAnsiNullsEnabled');
Resultado:
+--------------------+ | (No column name) | |--------------------| | 0 | +--------------------+
Agora é
0
para OFF
porque eu configurei para OFF
em um exemplo anterior. Para verificar o
ANSI_NULL_DEFAULT
configuração, faça isso:SELECT DATABASEPROPERTYEX('Music','IsAnsiNullDefault');
Resultado:
+--------------------+ | (No column name) | |--------------------| | 1 | +--------------------+