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 igual a 'Adventure', então @x += 'Works' pega o valor original de , adiciona 'Works' à cadeia de @xcaracteres 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 Resultados
Retorna o tipo de dados definido para a variável.
Remarks
SET @v1 += 'expressão' é equivalente a SET @v1 = @v1 + ('expressão'). 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 causará 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
-- or
SET @y = '';
SET @y = @x + @z + @y;
SELECT LEN(@y) AS Y; -- 8000
GO
Aqui está o conjunto de resultados.
Y
-------
8000
(1 row(s) affected)
Y
-------
12000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
Ver também
Operadores (Transact-SQL)
+= (Adicionar atribuição) (Transact-SQL)
+ (concatenação de cordas) (Transact-SQL)