Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Ponto de extremidade de análise de SQL no Microsoft Fabric
Depósito no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Concatena duas cadeias de caracteres e define a cadeia de caracteres como o resultado da operação. Por exemplo, se uma variável for igual'Adventure', então @x += 'Works' usará o valor original de @x, adicionará 'Works' à cadeia de caracteres e definirá @x esse novo valor'AdventureWorks'.@x
Convenções de sintaxe de Transact-SQL
Syntax
expression += expression
Arguments
expression
Qualquer expressão válida de qualquer um dos tipos de dados de caractere.
Tipos de retorno
Retorna o tipo de dados definido para a variável.
Remarks
SET @v1 += 'expression' é equivalente a SET @v1 = @v1 + ('expression'). Além disso, SET @v1 = @v2 + @v3 + @v4 é equivalente a SET @v1 = (@v2 + @v3) + @v4.
O += operador não pode ser usado sem uma variável. Por exemplo, o código a seguir causa um erro:
SELECT 'Adventure' += 'Works'
Examples
A. Concatenação usando o operador +=
O exemplo a seguir concatena o uso do operador +=.
DECLARE @v1 VARCHAR(40);
SET @v1 = 'This is the original.';
SET @v1 += ' More text.';
PRINT @v1;
Veja a seguir o conjunto de resultados.
This is the original. More text.
B. Ordem de avaliação durante a concatenação usando o operador +=
O exemplo a seguir concatena várias cadeias de caracteres para formar uma cadeia de caracteres longa e, em seguida, tenta calcular o tamanho da cadeia de caracteres final. Este exemplo demonstra as regras de truncamento e a ordem de avaliação, durante o uso do operador de concatenação.
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
SET @y = '';
SET @y = @x + @z + @y;
SELECT LEN(@y) AS Y; -- 8000
GO
Veja a seguir o conjunto de resultados.
Y
-------
8000
Y
-------
12000
Y
-------
8000
Y
-------
8000