sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo encontrar la configuración ANSI_NULLS de una base de datos en SQL Server (T-SQL)

SQL Server tiene un ANSI_NULLS configuración que determina cómo NULL los valores se evalúan cuando se comparan con otro valor con los Iguales (= ) y Distinto de (<> ) operadores de comparación.

Si bien es cierto que puede cambiar el ANSI_NULLS configuración a nivel de sesión (usando SET ANSI_NULLS ), cada base de datos también tiene su propio ANSI_NULLS ajuste.

Puede verificar su base de datos para ver si es ANSI_NULLS la configuración es ON o OFF .

Para hacer esto con T-SQL, puede usar sys.databases vista de catálogo o DATABASEPROPERTYEX() función.

Las sys.databases Ver

Las sys.databases La vista de catálogo contiene mucha información sobre cada base de datos en su instancia de SQL Server.

La siguiente consulta devuelve el ANSI_NULLS configuración para la Music base de datos:

SELECT is_ansi_nulls_on 
FROM sys.databases
WHERE name = 'Music';

Resultado:

+--------------------+
| is_ansi_nulls_on   |
|--------------------|
| 1                  |
+--------------------+

En este caso, ANSI_NULLS está ON para esta base de datos.

Podemos apagarlo OFF así:

ALTER DATABASE Music
SET ANSI_NULLS OFF;

Puedes eliminar el WHERE cláusula cuando se usa sys.databases vista de catálogo para devolver datos para todas las bases de datos. Así:

SELECT 
    name,
    is_ansi_nulls_on 
FROM sys.databases
ORDER BY name ASC;

Esta vista también tiene una columna llamada is_ansi_null_default_on , que devuelve el ANSI_NULL_DEFAULT configuración para la base de datos.

El ANSI_NULL_DEFAULT la configuración determina el valor predeterminado, NULL o NOT NULL , de una columna o tipo CLR definido por el usuario para el que la nulabilidad no está definida explícitamente en CREATE TABLE o ALTER TABLE declaraciones.

Podríamos modificar el ejemplo anterior para incluir esta columna:

SELECT
    name,
    is_ansi_nulls_on,
    is_ansi_null_default_on
FROM sys.databases
ORDER BY name ASC;

La DATABASEPROPERTYEX() Función

Otra forma de verificar esta configuración es con DATABASEPROPERTYEX() función.

Aquí se explica cómo verificar el ANSI_NULLS configuración para la Music DB:

SELECT DATABASEPROPERTYEX('Music','IsAnsiNullsEnabled');

Resultado:

+--------------------+
| (No column name)   |
|--------------------|
| 0                  |
+--------------------+

Ahora es 0 para OFF porque lo puse en OFF en un ejemplo anterior.

Para verificar el ANSI_NULL_DEFAULT ajuste, haga esto:

SELECT DATABASEPROPERTYEX('Music','IsAnsiNullDefault');

Resultado:

+--------------------+
| (No column name)   |
|--------------------|
| 1                  |
+--------------------+