||= (составное назначение) (Transact-SQL)

Применимо к: База данных SQL Azure

||= Объединение с помощью оператора составного назначения можно использовать для объединения выражения со значением символьной или двоичной строковой переменной, а затем назначить результирующее выражение переменной.

Оператор ||= поддерживает то же поведение, что и оператор += для символьных и двоичных строк.

Соглашения о синтаксисе Transact-SQL

Синтаксис

variable ||= expression

Аргументы

variable

Переменная T-SQL типа символов: char, varchar, nchar, nvarchar, varchar(max)или nvarchar(max), или двоичного типа: binary или varbinary или varbinary(max).

выражение

Символ или двоичное выражение. Если выражение не является типом символа, тип выражения должен быть неявно преобразован в строку символов.

Типы возвращаемых данных

Назначает результат оператора объединения для символьных строк переменной.

  • Если переменная или выражение является значением SQL NULL , результатом сцепленного выражения является NULL.
  • Если переменная имеет тип данных большого объекта (LOB) (varchar(max) или nvarchar(max)), то результирующее выражение — varchar(max) или nvarchar(max).
  • Если переменная имеет тип varbinary(max),результирующее выражение имеет тип varbinary(max).
  • Если переменная не является типом бизнес-объекта, результат усечен до максимальной длины объявленного типа переменной.

Замечания

Если результат объединения строк превышает предел в 8 000 байт, то он усекается. Однако если хотя бы одна из строк сцеплена является большим типом значения, усечение не происходит.

При сцеплении двоичных строк с любыми символами между двоичными строками необходимо использовать явное преобразование в символьные данные.

Строки и символы нулевой длины

Оператор ||= (объединение строк) ведет себя по-разному при работе с пустой строкой нулевой длины, чем при работе с NULLнеизвестными значениями. Символьная строка символа нулевой длины может быть указана в виде двух одинарных кавычек без каких-либо символов между ними. Двоичная строка нулевой длины может быть указана без 0x каких-либо байтовых значений, указанных в шестнадцатеричной константе. При сцеплении строки нулевой длины всегда сцепляются две указанные строки.

Объединение значений NULL

Как и при арифметических операциях, NULL выполняемых при NULL добавлении значения в известное значение, результат обычно является значениемNULL. Операция объединения строк, выполняемая со NULL значением, также должна привести к результату NULL .

Оператор ||= не учитывает SET CONCAT_NULL_YIELDS_NULL параметр и всегда ведет себя так, как если бы поведение ANSI SQL было включено, что дает NULL значение, если какой-либо из входных данных имеет значение NULL. Это основное различие в поведении между += операторами объединения.||= Дополнительные сведения см. в описании SET CONCAT_NULL_YIELDS_NULL.

Примеры

А. Использование объединения с составным назначением для строк

DECLARE @v1 varchar(10) = 'a'
SET @v1 ||= 'b';
SELECT @v1

Вот результирующий набор.

ab

B. Использование объединения с составным назначением для двоичных данных

DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;

Вот результирующий набор.

0x1A2B