SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Gilt für: SQL Server (alle unterstützten Versionen) Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Steuert die Behandlung von Verkettungsergebnissen als NULL-Werte oder als leere Zeichenfolgen.

Wichtig

In einer zukünftigen Version von SQL Server ist CONCAT_NULL_YIELDS_NULL immer auf ON festgelegt, und jede Anwendung, die diese Option explizit auf OFF festlegt, löst einen Fehler aus. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.

Transact-SQL-Syntaxkonventionen

Syntax

Syntax für SQL Server und Serverloser SQL-Pool in Azure Synapse Analytics

    
SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   

Syntax für Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

  
SET CONCAT_NULL_YIELDS_NULL ON    

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.

Hinweise

Wenn SET CONCAT_NULL_YIELDS_NULL auf ON festgelegt ist, führt die Verkettung eines NULL-Wertes mit einer Zeichenfolge zum Ergebnis NULL. SELECT 'abc' + NULL ergibt beispielsweise NULL. Wenn SET CONCAT_NULL_YIELDS_NULL auf OFF festgelegt ist, erzeugt die Verkettung eines NULL-Wertes mit einer Zeichenfolge als Ergebnis die Zeichenfolge (der NULL-Wert wird als leere Zeichenfolge behandelt). SELECT 'abc' + NULL ergibt beispielsweise abc.

Wenn SET CONCAT_NULL_YIELDS_NULL nicht angegeben ist, gilt die Einstellung der CONCAT_NULL_YIELDS_NULL-Datenbankoption.

Hinweis

SET CONCAT_NULL_YIELDS_NULL stimmt mit der CONCAT_NULL_YIELDS_NULL-Einstellung von ALTER DATABASE überein.

Die Einstellung von SET CONCAT_NULL_YIELDS_NULL wird zur Ausführungszeit und nicht zur Analysezeit festgelegt.

SET CONCAT_NULL_YIELDS_NULL muss beim Erstellen oder Ändern von indizierten Sichten, Indizes für berechnete Spalten, gefilterte Indizes oder räumliche Indizes auf ON festgelegt sein. Wenn SET CONCAT_NULL_YIELDS_NULL auf OFF festgelegt ist, treten bei CREATE-, UPDATE-, INSERT- und DELETE-Anweisungen in Tabellen mit Indizes für berechnete Spalten, gefilterte Indices, räumliche Indizes oder indizierte Sichten Fehler auf. Weitere Informationen zu den erforderlichen Einstellungen der SET-Option mit indizierten Sichten und Indizes für berechnete Spalten finden Sie in den Überlegungen zum Verwenden der SET-Anweisungen unter SET-Anweisungen (Transact-SQL).

Wenn CONCAT_NULL_YIELDS_NULL auf OFF festgelegt wird, ist die Zeichenfolgenverkettung über Servergrenzen hinweg nicht möglich.

Um die aktuelle Einstellung anzuzeigen, führen Sie die folgende Abfrage aus.

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

Beispiele

Das folgende Beispiel zeigt die Verwendung beider SET CONCAT_NULL_YIELDS_NULL-Einstellungen.

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  

Weitere Informationen

SET-Anweisungen (Transact-SQL)
SESSIONPROPERTY (Transact-SQL)