Comparteix a través de


SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Se aplica a: punto de conexión de SQL Server Azure SQL Instancia administrada el punto de conexión de SQL Analytics Analytics Platform System (PDW) de SQL Analytics system (PDW) de SQL Server en Microsoft Fabric Warehouse en Microsoft Fabric

Determina si los resultados de la concatenación se tratan como valores NULL o como valores de cadena vacía.

Nota:

SET CONCAT_NULL_YIELDS_NULL OFF y la opción de base de datos OFF de CONCAT_NULL_YIELDS_NULL están en desuso. A partir de SQL Server 2017 (14.x), CONCAT_NULL_YIELDS_NULL siempre se establece en ACTIVADO. Las características en desuso no se deben usar en nuevas aplicaciones. Para obtener más información, vea Características de Motor de base de datos en desuso en SQL Server 2017.

Convenciones de sintaxis de Transact-SQL

Sintaxis

Sintaxis de SQL Server y un grupo de SQL sin servidor en Azure Synapse Analytics, Microsoft Fabric

SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   

Sintaxis para Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

SET CONCAT_NULL_YIELDS_NULL ON    

Comentarios

Cuando SET CONCAT_NULL_YIELDS_NULL es ON, al concatenar un valor NULL con una cadena se produce como resultado NULL. Por ejemplo, SELECT 'abc' + NULL produce NULL. Cuando SET CONCAT_NULL_YIELDS_NULL es OFF, al concatenar un valor NULL con una cadena se obtiene la propia cadena (el valor NULL se trata como una cadena vacía). Por ejemplo, SELECT 'abc' + NULL produce abc.

Si no se especifica SET CONCAT_NULL_YIELDS_NULL, se aplica la configuración de la opción de base de datos CONCAT_NULL_YIELDS_NULL.

Nota

La opción SET CONCAT_NULL_YIELDS_NULL es igual que la opción CONCAT_NULL_YIELDS_NULL de ALTER DATABASE.

La opción SET CONCAT_NULL_YIELDS_NULL se establece en tiempo de ejecución, no en tiempo de análisis.

SET CONCAT_NULL_YIELDS_NULL debe ser ON al crear o cambiar vistas indexadas, índices en columnas calculadas, índices filtrados o índices espaciales. Si SET CONCAT_NULL_YIELDS_NULL es OFF, las instrucciones CREATE, UPDATE, INSERT y DELETE en tablas con índices, en columnas calculadas, en índices filtrados, en índices espaciales o en vistas indexadas generarán errores. Para más información sobre las configuraciones de las opciones SET necesarias con vistas indizadas e índices en columnas calculadas, vea el apartado "Consideraciones al utilizar las instrucciones SET" en Instrucciones SET (Transact-SQL).

Cuando CONCAT_NULL_YIELDS_NULL se establece en OFF, no se puede producir la concatenación de cadenas entre los límites del servidor.

Para ver la configuración actual de este valor, ejecute la consulta siguiente.

DECLARE @CONCAT_SETTING VARCHAR(3) = 'OFF';  
IF ( (4096 & @@OPTIONS) = 4096 ) SET @CONCAT_SETTING = 'ON';  
SELECT @CONCAT_SETTING AS CONCAT_NULL_YIELDS_NULL; 

Ejemplos

En el ejemplo siguiente se muestra el uso de los dos valores de SET CONCAT_NULL_YIELDS_NULL.

PRINT 'Setting CONCAT_NULL_YIELDS_NULL ON';  
GO  
-- SET CONCAT_NULL_YIELDS_NULL ON and testing.  
SET CONCAT_NULL_YIELDS_NULL ON;  
GO  
SELECT 'abc' + NULL ;  
GO  
  
-- SET CONCAT_NULL_YIELDS_NULL OFF and testing.  
SET CONCAT_NULL_YIELDS_NULL OFF;  
GO  
SELECT 'abc' + NULL;   
GO