Delen via


+= (Toewijzing tekenreekssamenvoeging) (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

Voegt twee tekenreeksen samen en stelt de tekenreeks in op het resultaat van de bewerking. Als een variabele @x bijvoorbeeld gelijk is aan 'Adventure', wordt @x met += 'Works' de oorspronkelijke waarde gebruikt @x, wordt 'Works' aan de tekenreeks toegevoegd en wordt deze nieuwe waarde 'AdventureWorks' ingesteld @x .

Transact-SQL syntaxis-conventies

Syntax

expression += expression  

Arguments

expression
Is een geldige expressie van een van de tekengegevenstypen.

Result Types

Retourneert het gegevenstype dat is gedefinieerd voor de variabele.

Remarks

SET @v1 += 'expression' is gelijk aan SET @v1 = @v1 + ('expression'). SET is ook gelijk aan SET @v1@v3@v4 + = + @v1@v2= (@v2 + . @v3) + @v4

De operator += kan niet worden gebruikt zonder een variabele. De volgende code veroorzaakt bijvoorbeeld een fout:

SELECT 'Adventure' += 'Works'  

Examples

A. Samenvoeging met behulp van de operator +=

Het volgende voorbeeld voegt samen met behulp van de += operator.

DECLARE @v1 VARCHAR(40);  
SET @v1 = 'This is the original.';  
SET @v1 += ' More text.';  
PRINT @v1;  

Hier is het resultatenoverzicht.

This is the original. More text.

B. Volgorde van evaluatie tijdens het samenvoegen met behulp van de operator +=

Het volgende voorbeeld voegt meerdere tekenreeksen samen om één lange tekenreeks te vormen en probeert vervolgens de lengte van de uiteindelijke tekenreeks te berekenen. In dit voorbeeld ziet u de evaluatievolgorde en afkappingsregels, terwijl u de samenvoegingsoperator gebruikt.

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 is het resultatenoverzicht.

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)
+= (Toewijzing toevoegen) (Transact-SQL)
+ (tekenreekssamenvoeging) (Transact-SQL)