||= (복합 할당)(Transact-SQL)
적용 대상: Azure SQL Database
||=
복합 할당 연산자와의 연결을 사용하여 식을 문자 또는 이진 문자열 변수의 값과 연결한 다음 결과 식을 변수에 할당할 수 있습니다.
연산자는 문자 및 이 ||=
진 문자열에 대해 += 연산 자와 동일한 동작을 지원합니다.
구문
variable ||= expression
인수
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