ESTABLECER ANSI_NULLS (ENCENDIDO | APAGADO) en SQL Server


los ANSI_NULLS La opción SET de la base de datos controla el comportamiento de los operadores Igual (=) y Comparación (! =) en las consultas cuando se manejan registros NULL. Es un estándar ISO decidir una acción de consulta para concluir cómo SQL Server debe manejar la comparación con NULL.

La mayoría de nosotros debe haber visto la configuración ANSI_NULLS (ON | OFF) utilizada al comienzo de un procedimiento almacenado, función u otro objeto de base de datos.

Índice de contenidos
  1. Nota importante de SQL Server Books Online:
  2. Sintaxis
  3. ACTIVAR ANSI_NULLS
  4. DESHABILITAR ANSI_NULLS
  5. Ejemplos de ANSI_NULLS
  6. Diferenciar entre registros NULL y NOT NULL
  7. ACTIVAR ANSI_NULLS
  8. DESHABILITAR ANSI_NULLS

Nota importante de SQL Server Books Online:

En una versión futura de SQL Server, ANSI_NULLS siempre estará activo y cualquier aplicación que establezca explícitamente la opción en OFF generará un error. Evite usar esta función en nuevos trabajos de desarrollo y planee modificar las aplicaciones que actualmente usan esta función.

Sintaxis

SET ANSI_NULLS { ON | OFF }  

ACTIVAR ANSI_NULLS

SQL Server: Documentación del esquema de la tabla usando DB> DocSQL Server: Documentación del esquema de la tabla usando DB> Doc

Cuando la opción de base de datos ANSI_NULL se establece en ENluego se devuelve una comparación con los registros NULL EXTRAÑO. Por lo tanto, no se devuelven filas. Si compara algo con NULL, saldrá como DESCONOCIDO y también el NADA = NADA la comparación se considerará DESCONOCIDA. No puedes comparar NULL con nada. Este es un estándar ISO cuando se trata de registros NULL.

DESHABILITAR ANSI_NULLS

Cuando la opción de base de datos ANSI_NULLS se establece en APAGADOluego, una comparación con registros NULL devuelve las filas como una comparación que devuelven VERDADERO en lugar de DESCONOCIDO. Esto anula el comportamiento de ISO. Con ANSI_NULLS OFF, la comparación con registros NULL es VERDADERA; luego, se devuelven los registros. Cuando se utiliza la opción de base de datos ANSI_NULLS OFF, SQL Server trata los valores NULL como valores especiales al compararlos con otros registros.

Ejemplos de ANSI_NULLS

Creamos una tabla temporal para los empleados y la completamos con algunos registros de prueba.

Eliminar un objeto LDAP usando ldapmodify
IF OBJECT_ID ('tempdb..#Employee') IS NOT NULL
 DROP TABLE #Employee;

CREATE TABLE #Employee
(
 Id            INT            IDENTITY (1 ,1)   PRIMARY KEY
,Name         VARCHAR (100)   NOT NULL
,Salary       INT              NULL
);

INSERT INTO #Employee VALUES
('Niraj' , 125), ('Vish'  ,80),
('Chetan', 235), ('Imans' , NULL);

SELECT  *
FROM   #Employee;

Como se vio arriba, estamos seleccionando todos los registros de las tablas de empleados y resaltando los registros NULL y NOT NULL.

Diferenciar entre registros NULL y NOT NULL

--Standard method to test for NULL
SELECT  *
FROM   #Employee
WHERE  Salary IS NULL;

SELECT  *
FROM   #Employee
WHERE  Salary IS NOT NULL;

IS_NULL_OR_IS_NOT_NULL_SQL_Server_1

El ejemplo anterior muestra la forma estándar de recuperar registros NULL de la tabla. Este es el enfoque más recomendado cuando se trata de valores NULL.

ACTIVAR ANSI_NULLS

Cómo crear un proyecto de base de datos de SQL Server en Visual StudioCómo crear un proyecto de base de datos de SQL Server en Visual Studio
--Set ANSI_NULLS option to ON
--Doesn't return any rows following ISO behaviour
SET ANSI_NULLS ON
SELECT *
FROM   #Employee
WHERE  Salary = NULL;

SELECT *
FROM   #Employee
WHERE  Salary <> NULL;

ANSI_NULLS_ON_SQL_Server

En el ejemplo anterior, ANSI_NULLS está ACTIVO. Por lo tanto, la comparación con valores NULL se evalúa como DESCONOCIDA, por lo que no se devuelven filas.

DESHABILITAR ANSI_NULLS

--Set ANSI_NULLS option to OFF
--Returns records having NULLs Overriding ISO Behaviour 
SET ANSI_NULLS OFF
SELECT *
FROM   #Employee
WHERE  Salary = NULL;

SELECT *
FROM   #Employee
WHERE  Salary <> NULL;

ANSI_NULLS_OFF_SQL_Server

En el ejemplo anterior, ANSI_NULLS está DESACTIVADO. Por lo tanto, una comparación con valores NULL se evalúa como VERDADERO. Esto le da a los valores NULL un significado especial y se devuelven registros de consultas anteriores.

Una guía para principiantes para secuenciar objetos en SQL ServerUna guía para principiantes para secuenciar objetos en SQL Server

Obtenga más información sobre bases de datos y programación SQL de Tech-Recipes.

Cuentas Seguras

Descubre más contenido

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir