SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Si applica a:SQL ServerIstanza gestita di SQL di Azure endpoint di analisi SQL di Azure Synapse Analytics Platform System (PDW) in Microsoft Fabric Warehouse in Microsoft Fabric

Determina se i risultati della concatenazione di valori Null vengono gestiti come valori Null o valori di stringa vuota.

Nota

SET CONCAT_NULL_YIELDS_NULL OFF e l'opzione CONCAT_NULL_YIELDS_NULL database OFF sono obsolete. A partire da SQL Server 2017 (14.x), CONCAT_NULL_YIELDS_NULL è sempre impostato su ON. È consigliabile non usare le funzionalità deprecate nelle nuove applicazioni. Per altre informazioni, vedere Funzionalità di motore di database deprecate in SQL Server 2017.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

Sintassi per SQL Server, pool SQL serverless in Azure Synapse Analytics, Microsoft Fabric

SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   

Sintassi per Azure Synapse Analytics e piattaforma di strumenti analitici (PDW)

SET CONCAT_NULL_YIELDS_NULL ON    

Osservazioni:

Quando SET CONCAT_NULL_YIELDS_NULL è ON, concatenare un valore nullo con una stringa produce un risultato NULL. Ad esempio, SELECT 'abc' + NULL restituisce NULL. Quando SET CONCAT_NULL_YIELDS_NULL è OFF, concatenare un valore nullo con una stringa produce la stringa stessa (il valore nullo è trattato come una stringa vuota). Ad esempio, SELECT 'abc' + NULL restituisce abc.

Se SET CONCAT_NULL_YIELDS_NULL non è specificato, si applica l'impostazione dell'opzione CONCAT_NULL_YIELDS_NULL database.

Nota

SET SET CONCAT_NULL_YIELDS_NULL è la stessa impostazione dell'impostazione CONCAT_NULL_YIELDS_NULL di ALTER DATABASE.

L'impostazione di viene impostata in fase di SET CONCAT_NULL_YIELDS_NULL esecuzione o in fase di esecuzione e non in fase di analisi.

SET CONCAT_NULL_YIELDS_NULL deve essere ON quando si creano o modificano viste indicizzate, indici su colonne calcolate, indici filtrati o indici spaziali. Se SET CONCAT_NULL_YIELDS_NULL è OFF, qualsiasi istruzione CREATE, UPDATE, INSERT, e DELETE su tabelle con indici su colonne calcolate, indici filtrati, indici spaziali o viste indicizzate falliranno. Per maggiori informazioni sulle impostazioni di opzione richieste SET con viste indicizzate e indici su colonne calcolate, vedi "Considerazioni quando usi le SET Dichiarazioni" in SET Istruzioni (Transact-SQL).

Quando CONCAT_NULL_YIELDS_NULL è impostato su OFF, la concatenazione delle stringhe attraverso i confini del server non può avvenire.

Per visualizzare l'impostazione corrente per questa impostazione, eseguire la query riportata di seguito.

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

Esempi

Nell'esempio seguente viene illustrato l'utilizzo di entrambe le impostazioni 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