+= (Zeichenfolgenverkettungszuweisung) (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL-Analyseendpunkt in Microsoft Fabric Warehouse in Microsoft Fabric SQL-Datenbank in Microsoft Fabric
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
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 sehen Sie das Ergebnis.
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 sehen Sie das Ergebnis.
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)