SET_BIT(Transact SQL)

적용 대상: Microsoft Fabric의 Microsoft FabricWarehouse에 있는 SQL Server 2022(16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL 분석 엔드포인트

SET_BIT는 bit_offset에 의해 정의된 비트별로 expression_value 오프셋을 반환합니다. 비트 값은 기본적으로 1로 설정되거나 bit_value에 의해 설정됩니다.

Transact-SQL 구문 표기 규칙

구문

SET_BIT ( expression_value, bit_offset ) 
SET_BIT ( expression_value, bit_offset, bit_value )

인수

expression_value

LOB(큰 개체)가 아닌 정수 또는 이진 식입니다.

bit_offset

임의의 정수입니다.

반환 형식

expression_value 형식과 동일합니다.

bit_offset 매개 변수는 설정할 데이터의 n번째 비트를 식별하는 데 사용됩니다. 정수 형식에서 0번째 비트는 가장 중요하지 않은 비트입니다. 이진 형식에서 0번째 비트는 가장 오른쪽 바이트에서 가장 유의미한 비트입니다.

bit_value는 정수 또는 비트일 수 있습니다. 그러나 데이터 형식에 관계없이 bit_value의 유효한 값은 1과 0뿐입니다. SET_BIT는 bit_value가 1 또는 0 또는 null이 아니면 오류를 발생합니다.

SET_BIT는 bit_offset이 데이터 형식의 마지막 비트보다 크거나 음수이면 오류를 발생합니다.

설명

초기 구현에서는 연결된 서버 내의 비트 조작 함수 또는 OPENQUERY(임시 쿼리)에 대한 분산 쿼리 기능이 지원되지 않습니다.

A. SET_BIT를 사용하여 값 수정

이 예제에서는 세 번째 비트(오프셋 2, 0부터 시작하는 인덱스)가 1로 설정됩니다.

SELECT SET_BIT ( 0x00, 2 ) as VARBIN1;

결과는 0x04입니다. 이는 0x00expression_value0000으로 변환되기 때문입니다. SET_BIT는 세 번째 비트(오프셋 2)를 1로 변경하여 0100을 만듭니다. 이 이진 값은 16진수 표현과 같이 4로 반환됩니다.

B. SET_BIT를 사용하여 사용자 지정 bit_value으로 값 수정

이 예제에서는 bit_value가 기본값인 1이 아닌 0으로 설정됩니다.

SELECT SET_BIT ( 0xabcdef, 0, 0 ) as VARBIN2;

결과는 0xABCDEE입니다. expression_value는 이진인 1010 1011 1100 1101 1110 1111로 변환됩니다. SET_BIT는 첫 번째 비트를 0으로 변경하고 결과는 16진수 형식으로 반환됩니다.

추가 정보