Dela via


+= (Strängsammanfogningstilldelning) (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-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)