Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Förhandsversion av Microsoft Fabric
Sammanfogar två strängar och anger strängen till resultatet av åtgärden. Om en variabel @x till exempel är lika med "Adventure" @x tar += "Works" det ursprungliga värdet @x, lägger till "Works" i strängen och anger @x det nya värdet "AdventureWorks".
Transact-SQL syntaxkonventioner
Syntax
expression += expression
Arguments
expression
Är ett giltigt uttryck för någon av teckendatatyperna.
Result Types
Returnerar den datatyp som har definierats för variabeln.
Remarks
SET @v1 += "expression" motsvarar SET @v1 = @v1 + ('expression'). SET @v1@v3 + + = @v2@v4 motsvarar också SET @v1 = (@v2 + . @v3) + @v4
Operatorn += kan inte användas utan en variabel. Följande kod orsakar till exempel ett fel:
SELECT 'Adventure' += 'Works'
Examples
A. Sammanfogning med operatorn +=
I följande exempel sammanfogas med operatorn += .
DECLARE @v1 VARCHAR(40);
SET @v1 = 'This is the original.';
SET @v1 += ' More text.';
PRINT @v1;
Här är resultatet.
This is the original. More text.
B. Utvärderingsordning vid sammanfogning med hjälp av +=-operatorn
I följande exempel sammanfogas flera strängar för att bilda en lång sträng och försöker sedan beräkna längden på den sista strängen. Det här exemplet visar reglerna för utvärderingsordning och trunkering när du använder sammanfogningsoperatorn.
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
Här är resultatet.
Y
-------
8000
(1 row(s) affected)
Y
-------
12000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
See Also
Operators (Transact-SQL)
+= (Lägg till tilldelning) (Transact-SQL)
+ (Strängsammanfogning) (Transact-SQL)