SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

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

Wichtiger HinweisWichtig

In einer späteren Version von SQL Server wird CONCAT_NULL_YIELDS_NULL immer auf ON festgelegt, und jede Anwendung, die für die Option explizit OFF festlegt, löst einen Fehler aus. Verwenden Sie dieses Feature nicht beim Entwickeln neuer Anwendungen, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

SET CONCAT_NULL_YIELDS_NULL { ON | OFF } 

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.

Bei fehlender Angabe von SET CONCAT_NULL_YIELDS gilt die Einstellung der Datenbankoption CONCAT_NULL_YIELDS_NULL.

HinweisHinweis

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 Indizes für berechnete Spalten oder indizierte Sichten 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 oder indizierten Sichten Fehler auf. Weitere Informationen zu den erforderlichen Einstellungen der Option SET mit indizierten Sichten und Indizes für berechnete Spalten finden Sie im Rahmen der Hinweise zum Verwenden von SET-Anweisungen in SET (Transact-SQL).

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

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