||= (복합 할당)(Transact-SQL)

적용 대상: Azure SQL Database

||= 복합 할당 연산자와의 연결을 사용하여 식을 문자 또는 이진 문자열 변수의 값과 연결한 다음 결과 식을 변수에 할당할 수 있습니다.

연산자는 문자 및 이 ||= 진 문자열에 대해 += 연산 자와 동일한 동작을 지원합니다.

Transact-SQL 구문 표기 규칙

Syntax

variable ||= expression

참고 항목

SQL Server 2014(12.x) 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

variable

문자 형식의 T-SQL 변수: char, varchar, nchar, nvarchar, varchar(max) 또는 nvarchar(max) 또는 이진 형식인 이진 또는 varbinary 또는 varbinary(max)입니다.

expression

문자 또는 이진 입니다. 식이 문자 형식이 아닌 경우 식의 형식을 문자 문자열로 암시적으로 변환할 수 있어야 합니다.

반환 형식

문자 문자열에 대한 연결 연산자의 결과를 변수에 할당합니다.

  • 변수 또는 식이 SQL NULL 값인 경우 연결된 식의 결과는 다음과 같습니다 NULL.
  • 변수가 LOB(큰 개체) 데이터 형식(varchar(max) 또는 nvarchar(max)인 경우 결과 식은 varchar(max) 또는 nvarchar(max)입니다.
  • 변수가 LOB 형식 varbinary(max)인 경우 결과 식은 varbinary(max)입니다.
  • 변수가 LOB 형식이 아닌 경우 결과는 선언된 변수 형식의 최대 길이로 잘립니다.

설명

문자열 연결의 결과가 제한치인 8,000바이트를 초과하면 결과가 잘립니다. 그러나 연결된 문자열 중 하나 이상이 큰 값 형식인 경우 잘림이 발생하지 않습니다.

이진 문자열 사이에 문자가 있는 형태의 연결에서는 문자 데이터로의 명시적 변환이 필요합니다.

길이가 0인 문자열 및 문자

||= (문자열 연결) 연산자는 빈 0 길이 문자열로 작업할 때 또는 알 수 없는 값으로 작업할 때와 NULL다르게 동작합니다. 길이가 0인 문자열은 문자가 포함되지 않은 두 개의 작은 따옴표로 지정할 수 있습니다. 길이가 0인 이진 문자열은 16진수 상수에 지정된 바이트 값 없이 지정할 수 있습니다 0x . 길이가 0인 문자열을 연결하면 항상 지정된 문자열 2개가 연결됩니다.

NULL 값 연결

값에 NULL 대해 수행되는 산술 연산과 마찬가지로 값이 알려진 값에 추가될 때 NULL 결과는 일반적으로 NULL 값입니다. 값으로 NULL 수행되는 문자열 연결 작업도 결과를 생성 NULL 해야 합니다.

연산자는 ||= 이 옵션을 적용 SET CONCAT_NULL_YIELDS_NULL 하지 않으며 ANSI SQL 동작이 활성화된 것처럼 항상 동작하며 NULL 입력이 있으면 생성됩니다 NULL. 이는 연결 연산자와 ||= 연결 연산자 간의 동작의 += 주요 차이점입니다. 자세한 내용은 SET CONCAT_NULL_YIELDS_NULL을 참조하세요.

예제

A. 문자열에 복합 할당과 연결 사용

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

결과 집합은 다음과 같습니다.

ab

B. 이진 데이터에 복합 할당과 연결 사용

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

결과 집합은 다음과 같습니다.

0x1A2B