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