Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Объединяет две строки и присваивает строке результат этой операции. Например, если переменная равна, принимает @x += 'Works' исходное значение@x, добавляется 'Works' в строку и задает @x это новое значение'AdventureWorks'.'Adventure'@x
Соглашения о синтаксисе Transact-SQL
Syntax
expression += expression
Arguments
expression
Любое допустимое выражение любого из типов данных символов.
Типы возвращаемых данных
Возвращает тип данных, определенный для переменной.
Remarks
SET @v1 += 'expression' эквивалентен SET @v1 = @v1 + ('expression'). Кроме того, SET @v1 = @v2 + @v3 + @v4 эквивалентно SET @v1 = (@v2 + @v3) + @v4.
Оператор += нельзя использовать без переменной. Например, следующий код вызывает ошибку:
SELECT 'Adventure' += 'Works'
Examples
A. Объединение с помощью оператора +=
В следующем примере выполняется объединение строк с помощью оператора +=.
DECLARE @v1 VARCHAR(40);
SET @v1 = 'This is the original.';
SET @v1 += ' More text.';
PRINT @v1;
Вот результирующий набор.
This is the original. More text.
B. Порядок вычисления при объединениях с помощью оператора +=
В приведенном ниже примере выполняется объединение нескольких строк в одну длинную строку, а затем предпринимается попытка вычислить длину итоговой строки. В этом примере демонстрируются правила оценки и усечения при использовании оператора объединения.
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
Вот результирующий набор.
Y
-------
8000
Y
-------
12000
Y
-------
8000
Y
-------
8000