Sdílet prostřednictvím


+= (přiřazení zřetězení řetězců) (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Zřetězí dva řetězce a nastaví řetězec na výsledek operace. Pokud se například proměnná @x rovná "Adventure", pak @x += 'Works' převezme původní hodnotu @x, přidá 'Works' do řetězce a nastaví @x na tu novou hodnotu AdventureWorks.

Transact-SQL konvence syntaxe

Syntax

expression += expression  

Arguments

expression
Je libovolný platný výraz libovolného datového typu znaku.

Typy výsledků

Vrátí datový typ definovaný pro proměnnou.

Remarks

SET @v1 += 'expression' je ekvivalentem SET @v1 = @v1 + ('expression'). Funkce SET @v1 = @v2 + @v3 + @v4 je také ekvivalentní hodnotě SET @v1 = (@v2 + . @v3) + @v4

Operátor += nelze použít bez proměnné. Například následující kód způsobí chybu:

SELECT 'Adventure' += 'Works'  

Examples

A. Zřetězení pomocí operátoru +=

Následující příklad zřetězí pomocí operátoru += .

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

Tady je soubor výsledků.

This is the original. More text.

B. Pořadí vyhodnocení při zřetězení pomocí operátoru +=

Následující příklad zřetězí více řetězců, aby vytvořil jeden dlouhý řetězec, a pak se pokusí vypočítat délku konečného řetězce. Tento příklad ukazuje pravidla pořadí vyhodnocení a zkrácení při použití operátoru zřetězení.

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

Tady je soubor výsledků.

Y       
------- 
8000 
 
(1 row(s) affected) 
 
   
Y       
------- 
12000 
 
(1 row(s) affected) 

Y       
------- 
8000 
 
(1 row(s) affected) 
 
Y       
------- 
8000 
 
(1 row(s) affected)

Viz také

Operátory (Transact-SQL)
+= (přidat přiřazení) (Transact-SQL)
+ (zřetězení řetězců) (Transact-SQL)