SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Van toepassing op:SQL ServerAzureSQL Managed InstanceAzureSynapse AnalyticsAnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehousein Microsoft Fabric

Bepaalt of concatenatieresultaten worden behandeld als null- of lege stringwaarden.

Opmerking

SET CONCAT_NULL_YIELDS_NULL OFF en de optie UIT CONCAT_NULL_YIELDS_NULL databases zijn verouderd. Vanaf SQL Server 2017 (14.x) CONCAT_NULL_YIELDS_NULL staat het altijd op AAN. Afgeschafte functies mogen niet worden gebruikt in nieuwe toepassingen. Zie Afgeschafte database-enginefuncties in SQL Server 2017 voor meer informatie.

Transact-SQL syntaxis-conventies

Syntax

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

SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   

Syntaxis voor Azure Synapse Analytics en Analytics Platform System (PDW)

SET CONCAT_NULL_YIELDS_NULL ON    

Remarks

Wanneer SET CONCAT_NULL_YIELDS_NULL ON is, levert het concateneren van een nullwaarde met een string een NULL-resultaat op. Bijvoorbeeld, SELECT 'abc' + NULL geeft NULL. Wanneer SET CONCAT_NULL_YIELDS_NULL OFF is, levert het samenvoegen van een nulwaarde met een string de string zelf op (de nulwaarde wordt behandeld als een lege string). Bijvoorbeeld, SELECT 'abc' + NULL geeft abc.

Als SET CONCAT_NULL_YIELDS_NULL niet is gespecificeerd, geldt de instelling van de CONCAT_NULL_YIELDS_NULL database-optie.

Opmerking

SET SET CONCAT_NULL_YIELDS_NULL dezelfde instelling is als de CONCAT_NULL_YIELDS_NULL instelling van ALTER DATABASE.

De instelling van SET CONCAT_NULL_YIELDS_NULL wordt ingesteld bij uitvoering of uitvoeringstijd en niet op parseringstijd.

SET CONCAT_NULL_YIELDS_NULL moet AAN zijn bij het aanmaken of wijzigen van geïndexeerde weergaven, indexen op berekende kolommen, gefilterde indexen of ruimtelijke indexen. Als SET CONCAT_NULL_YIELDS_NULLOFF is, zullen alle CREATE-, UPDATE, INSERT, en DELETE instructies op tabellen met indexen op berekende kolommen, gefilterde indexen, ruimtelijke indexen of geïndexeerde weergaven falen. Voor meer informatie over de vereiste SET optie-instellingen met geïndexeerde weergaven en indexen op berekende kolommen, zie "Overwegingen bij het gebruik van de SET Statements" in SET Statements (Transact-SQL).

Wanneer CONCAT_NULL_YIELDS_NULL is ingesteld op UIT, kan stringconcatenatie over servergrenzen niet plaatsvinden.

Voer de volgende query uit om de huidige instelling voor deze instelling weer te geven.

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

Examples

Het volgende voorbeeld toont het gebruik van beide SET CONCAT_NULL_YIELDS_NULL instellingen.

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