Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
Concatena due stringhe e imposta la stringa sul risultato dell'operazione. Se ad esempio una variabile @x è uguale a 'Adventure', @x += 'Works' comporta l'aggiunta di 'Works' al valore originale @x e l'impostazione di @x sul nuovo valore 'AdventureWorks'.
Convenzioni relative alla sintassi Transact-SQL
Syntax
expression += expression
Arguments
expression
Qualsiasi espressione valida di dati di tipo carattere.
Tipi di risultati
Restituisce il tipo di dati definito per la variabile.
Remarks
SET @v1 += 'expression' equivale a SET @v1 = @v1 + ('expression'). Inoltre SET @v1 = @v2 + @v3 + @v4 equivale a SET@v1 = (@v2 + @v3) + @v4.
L'operatore += non può essere utilizzato senza una variabile. Il codice riportato di seguito comporta, ad esempio, la generazione di un errore:
SELECT 'Adventure' += 'Works'
Examples
A. Concatenazione usando l'operatore +=
Nell'esempio seguente viene eseguita una concatenazione utilizzando l'operatore +=.
DECLARE @v1 VARCHAR(40);
SET @v1 = 'This is the original.';
SET @v1 += ' More text.';
PRINT @v1;
Il set di risultati è il seguente.
This is the original. More text.
B. Ordine di valutazione durante la concatenazione usando l'operatore +=
Nell'esempio seguente si concatenano più stringhe per formare una stringa lunga e quindi si prova a calcolare la lunghezza della stringa finale. Questo esempio illustrato l'ordine di valutazione e le regole di troncamento quando si usa l'operatore di concatenazione.
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
Il set di risultati è il seguente.
Y
-------
8000
(1 row(s) affected)
Y
-------
12000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
Vedere anche
Operatori (Transact-SQL)
+= (assegnazione di addizione) (Transact-SQL)
+ (concatenazione di stringhe) (Transact-SQL)