+= (Zeichenfolgenverkettungszuweisung) (Transact-SQL)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL verwaltete Instanz
Azure Synapse Analytics
Platform System (PDW)
SQL Analytics Platform-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse
Verkettet zwei Zeichenfolgen und legt die Zeichenfolge auf das Ergebnis des Vorgangs fest. Wenn beispielsweise eine Variable @x gleich 'Adventure' ist, dann übernimmt @x += 'Works' den ursprünglichen Wert von @x, fügt 'Works' der Zeichenfolge hinzu und legt @x auf den neuen Wert 'AdventureWorks' fest.
Transact-SQL-Syntaxkonventionen
Syntax
expression += expression
Hinweis
Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.
Argumente
expression
Ein gültiger Ausdruck eines beliebigen Zeichendatentyps.
Ergebnistypen
Gibt den Datentyp zurück, der für die Variable definiert wird.
Bemerkungen
SET @v1 += 'Ausdruck' entspricht SET @v1 = @v1 + ('Ausdruck'). SET @v1 = @v2 + @v3 + @v4 entspricht außerdem SET @v1 = (@v2 + @v3) + @v4.
Der Operator += kann nicht ohne eine Variable verwendet werden. So verursacht z. B. der folgende Code einen Fehler:
SELECT 'Adventure' += 'Works'
Beispiele
A. Verkettung mit +=-Operator
Im folgenden Beispiel wird mithilfe des +=
-Operators verkettet.
DECLARE @v1 VARCHAR(40);
SET @v1 = 'This is the original.';
SET @v1 += ' More text.';
PRINT @v1;
Hier ist das Resultset.
This is the original. More text.
B. Reihenfolge der Auswertung beim Verketten mit dem +=-Operator
Im folgenden Beispiel werden mehrere Zeichenfolgen zu einer langen Zeichenfolge verkettet. Anschließend wird versucht, die Länge der endgültigen Zeichenfolge zu berechnen. Dieses Beispiel zeigt die Auswertungsreihenfolge und Kürzungsregeln bei Verwendung des concatenation-Operators.
DECLARE @x VARCHAR(4000) = REPLICATE('x', 4000)
DECLARE @z VARCHAR(8000) = REPLICATE('z',8000)
DECLARE @y VARCHAR(max);
SET @y = '';
SET @y += @x + @z;
SELECT LEN(@y) AS Y; -- 8000
SET @y = '';
SET @y = @y + @x + @z;
SELECT LEN(@y) AS Y; -- 12000
SET @y = '';
SET @y = @y +(@x + @z);
SELECT LEN(@y) AS Y; -- 8000
-- or
SET @y = '';
SET @y = @x + @z + @y;
SELECT LEN(@y) AS Y; -- 8000
GO
Hier ist das Resultset.
Y
-------
8000
(1 row(s) affected)
Y
-------
12000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
Weitere Informationen
Operatoren (Transact-SQL)
+= (Additionszuweisung) (Transact-SQL)
+ (Verketten von Zeichenfolgen) (Transact-SQL)