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)