SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

SI APPLICA A: sìSQL Server (a partire dalla versione 2008) noDatabase SQL di Azure sìAzure SQL Data Warehouse sìParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) noAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Determina se i risultati della concatenazione di valori Null vengono gestiti come valori Null o valori di stringa vuota.Controls whether concatenation results are treated as null or empty string values.

Importante

In una versione futura di SQL ServerSQL Server l'opzione CONCAT_NULL_YIELDS_NULL sarà sempre impostata su ON e qualsiasi applicazione che la imposta in modo esplicito su OFF restituirà un errore.In a future version of SQL ServerSQL Server CONCAT_NULL_YIELDS_NULL will always be ON and any applications that explicitly set the option to OFF will generate an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

-- Syntax for SQL Server  
    
SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  
  
SET CONCAT_NULL_YIELDS_NULL ON    

RemarksRemarks

Quando l'opzione SET CONCAT_NULL_YIELDS_NULL è impostata su ON, la concatenazione di un valore Null con una stringa restituisce NULL.When SET CONCAT_NULL_YIELDS_NULL is ON, concatenating a null value with a string yields a NULL result. Ad esempio, SELECT 'abc' + NULL restituisce NULL.For example, SELECT 'abc' + NULL yields 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).When SET CONCAT_NULL_YIELDS_NULL is OFF, concatenating a null value with a string yields the string itself (the null value is treated as an empty string). Ad esempio, SELECT 'abc' + NULL restituisce abc.For example, SELECT 'abc' + NULL yields abc.

Se non si specifica SET CONCAT_NULL_YIELDS_NULL, si applica l'impostazione dell'opzione di database CONCAT_NULL_YIELDS_NULL.If SET CONCAT_NULL_YIELDS_NULL is not specified, the setting of the CONCAT_NULL_YIELDS_NULL database option applies.

Nota

L'impostazione dell'opzione SET CONCAT_NULL_YIELDS_NULL è uguale all'impostazione di CONCAT_NULL_YIELDS_NULL di ALTER DATABASE.SET CONCAT_NULL_YIELDS_NULL is the same setting as the CONCAT_NULL_YIELDS_NULL setting of ALTER DATABASE.

L'opzione SET CONCAT_NULL_YIELDS_NULL viene impostata in fase di esecuzione, non in fase di analisi.The setting of SET CONCAT_NULL_YIELDS_NULL is set at execute or run time and not at parse time.

È 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.SET CONCAT_NULL_YIELDS_NULL must be ON when creating or altering indexed views, indexes on computed columns, filtered indexes or spatial indexes. 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.If SET CONCAT_NULL_YIELDS_NULL is OFF, any CREATE, UPDATE, INSERT, and DELETE statements on tables with indexes on computed columns, filtered indexes, spatial indexes or indexed views will fail. 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).For more information about required SET option settings with indexed views and indexes on computed columns, see "Considerations When You Use the SET Statements" in SET Statements (Transact-SQL).

Quando l'opzione CONCAT_NULL_YIELDS_NULL è impostata su OFF, la concatenazione delle stringhe in più server non può verificarsi.When CONCAT_NULL_YIELDS_NULL is set to OFF, string concatenation across server boundaries cannot occur.

Per visualizzare l'impostazione corrente per questa impostazione, eseguire la query riportata di seguito.To view the current setting for this setting, run the following query.

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

EsempiExamples

Nell'esempio seguente viene illustrato l'utilizzo di entrambe le impostazioni SET CONCAT_NULL_YIELDS_NULL.The following example showing using both SET CONCAT_NULL_YIELDS_NULL settings.

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  

Vedere ancheSee Also

Istruzioni SET (Transact-SQL) SET Statements (Transact-SQL)
SESSIONPROPERTY (Transact-SQL)SESSIONPROPERTY (Transact-SQL)