Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como encontrar a configuração ANSI_NULLS de um banco de dados no SQL Server (T-SQL)


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