SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
Si applica a: SQL Server Istanza 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 di database CONCAT_NULL_YIELDS_NULL OFF sono deprecate. 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 l'opzione SET CONCAT_NULL_YIELDS_NULL è impostata su ON, la concatenazione di un valore Null con una stringa restituisce NULL. Ad esempio, SELECT 'abc' + NULL
restituisce NULL
. Quando l'opzione SET CONCAT_NULL_YIELDS_NULL è impostata su OFF, la concatenazione di un valore Null con una stringa restituisce la stringa stessa (il valore Null viene considerato una stringa vuota). Ad esempio, SELECT 'abc' + NULL
restituisce abc
.
Se non si specifica SET CONCAT_NULL_YIELDS_NULL, si applica l'impostazione dell'opzione di database CONCAT_NULL_YIELDS_NULL.
Nota
L'impostazione dell'opzione SET CONCAT_NULL_YIELDS_NULL è uguale all'impostazione di CONCAT_NULL_YIELDS_NULL di ALTER DATABASE.
L'opzione SET CONCAT_NULL_YIELDS_NULL viene impostata in fase di esecuzione, non in fase di analisi.
È necessario che l'opzione SET CONCAT_NULL_YIELDS_NULL sia impostata su ON durante la creazione o la modifica di viste indicizzate, indici in colonne calcolate, indici filtrati o indici spaziali. Se l'opzione SET CONCAT_NULL_YIELDS_NULL è impostata su OFF, qualsiasi istruzione CREATE, UPDATE, INSERT e DELETE eseguita in tabelle con indici su colonne calcolate, indici filtrati, indici spaziali o viste indicizzate avrà esito negativo. Per altre informazioni sulle impostazioni dell'opzione SET necessarie per viste indicizzate e indici nelle colonne calcolate, vedere "Considerazioni sull'uso delle istruzioni SET" nell'argomento Istruzioni SET (Transact-SQL).
Quando l'opzione CONCAT_NULL_YIELDS_NULL è impostata su OFF, la concatenazione delle stringhe in più server non può verificarsi.
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