SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Platí na:SQL ServerAzureSQL Managed InstanceAzureSynapse AnalyticsAnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehousein Microsoft Fabric

Ovládá, zda jsou výsledky konkatenace považovány za nulové nebo prázdné řetězce.

Poznámka:

SET CONCAT_NULL_YIELDS_NULL OFF a možnost OFF databáze jsou CONCAT_NULL_YIELDS_NULL zastaralé. Od SQL Server 2017 (14.x) CONCAT_NULL_YIELDS_NULL je vždy nastaven na ON. Zastaralé funkce by se neměly používat v nových aplikacích. Další informace najdete v tématu Zastaralé funkce databázového stroje v SQL Serveru 2017.

Transact-SQL konvence syntaxe

Syntax

Syntax for SQL Server, serverless SQL pool in Azure Synapse Analytics, Microsoft Fabric

SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   

Syntaxe pro Azure Synapse Analytics a systém analytických platforem (PDW)

SET CONCAT_NULL_YIELDS_NULL ON    

Remarks

Když SET CONCAT_NULL_YIELDS_NULL je ON, spojení nulové hodnoty s řetězcem vede k výsledku NULL. Například dává SELECT 'abc' + NULLNULL. Když SET CONCAT_NULL_YIELDS_NULL je VYPNUTO, spojení nulové hodnoty s řetězcem vede k samotnému řetězci (nulová hodnota je považována za prázdný řetězec). Například dává SELECT 'abc' + NULLabc.

Pokud SET CONCAT_NULL_YIELDS_NULL není specifikováno, platí nastavení databáze CONCAT_NULL_YIELDS_NULL .

Poznámka:

SET SET CONCAT_NULL_YIELDS_NULLje stejné nastavení jako CONCAT_NULL_YIELDS_NULL nastavení .ALTER DATABASE

Nastavení je SET CONCAT_NULL_YIELDS_NULL nastaveno při spuštění nebo běhu a ne při parse.

SET CONCAT_NULL_YIELDS_NULL musí být ZAPNUTO při vytváření nebo úpravě indexovaných pohledů, indexů na vypočítaných sloupcích, filtrovaných indexů nebo prostorových indexů. Pokud SET CONCAT_NULL_YIELDS_NULL je VYPNUTO, všechny příkazy CREATE, UPDATE, INSERT, a DELETE na tabulkách s indexy na vypočítaných sloupcích, filtrovaných indexech, prostorových indexech nebo indexovaných pohledech selžou. Pro více informací o požadovaných SET nastaveních možností s indexovanými zobrazeními a indexy ve vypočítaných sloupcích viz "Úvahy při použití SET příkazů" v sekciSET Příkazy (Transact-SQL).

Pokud CONCAT_NULL_YIELDS_NULL je VYPNUTO, nemůže dojít ke spojení řetězců přes hranice serveru.

Pro zobrazení aktuálního nastavení tohoto nastavení spusťte následující dotaz.

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

Examples

Následující příklad ukazuje použití obou SET CONCAT_NULL_YIELDS_NULL nastavení.

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