Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Concatena duas cadeias de caracteres e define a cadeia de caracteres para o resultado da operação. Por exemplo, se uma variável @x for 'Adventure'igual a , então @x += 'Works' toma o valor original de @x, soma 'Works' à cadeia e define @x para esse novo valor 'AdventureWorks'.
Transact-SQL convenções de sintaxe
Syntax
expression += expression
Arguments
expression
Qualquer expressão válida de qualquer um dos tipos de dados de caracteres.
Tipos de devolução
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 seguinte código causa um erro:
SELECT 'Adventure' += 'Works'
Examples
A. Concatenação usando o operador +=
O exemplo a seguir concatena usando o += operador .
DECLARE @v1 VARCHAR(40);
SET @v1 = 'This is the original.';
SET @v1 += ' More text.';
PRINT @v1;
Aqui está 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 comprimento da cadeia de caracteres final. Este exemplo demonstra a ordem de avaliação e as regras de truncamento, ao usar o 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
Aqui está o conjunto de resultados.
Y
-------
8000
Y
-------
12000
Y
-------
8000
Y
-------
8000