Sdílet prostřednictvím


SET_BIT (Transact SQL)

platí pro: SQL Server 2022 (16.x) Azure SQL Databasekoncový bod služby Azure SQL Managed InstanceSQL Analytics ve službě Microsoft FabricWarehouse v Microsoft Fabric

SET_BIT vrátí expression_value posun bitem definovaným bit_offset. Hodnota bitu je výchozí hodnota 1 nebo je nastavena bit_value.

Transact-SQL konvence syntaxe

Syntax

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

Argumenty

expression_value

Jakékoli celé číslo nebo binární výraz, který není velkým objektem (LOB).

bit_offset

Libovolné celé číslo.

Návratové typy

Stejný typ jako expression_value.

Parametr bit_offset slouží k identifikaci nbitu dat, která se mají nastavit. V celočíselném typu je 0th bit nejmenším významným bitem. V binárníchtypech 0ch

bit_value může být celé číslo nebo bit. Jediné platné hodnoty pro bit_value jsou však 1 a 0 bez ohledu na datový typ. SET_BIT vyvolá chybu, pokud bit_value není 1 nebo 0 nebo null.

SET_BIT vyvolá chybu, pokud bit_offset je záporná nebo větší než poslední bit datového typu.

Poznámky

Funkce distribuovaného dotazu pro funkce pro manipulaci s bity v rámci odkazovaného serveru nebo ad hoc dotazů (OPENQUERY) se nepodporují.

Velké datové typy objektu (LOB) v databázovém stroji mohou ukládat data, která překračují 8 000 bajtů. Tyto datové typy ukládají data na přetečení řádku datové stránce. Obchodní objekt také zahrnuje datové typy, které ukládají data ve vyhrazených strukturách obchodních stránek, které používají text nebo ukazatel obrázku odkazů na řádkové odkazy na datové stránky LOB. Další informace o úložišti dat najdete v průvodci architekturou Stránky a rozsahy.

Funkce manipulace s bity pracují s tinyint, smallint, int, bigint, binary(n)a varbinary(n) datových typů. Datové typy velkých objektů (LOB), například varchar(max), nvarchar(max), varbinary(max), image, ntext, textové, xmla typy objektů BLOB clr (Common Language Runtime).

Příklady

A. Úprava hodnoty pomocí SET_BIT

V tomto příkladu je třetí bit (při posunu 2, index založený na nule) nastaven na 1.

SELECT SET_BIT ( 0x00, 2 ) as VARBIN1;

Výsledek je 0x04. Je to proto, že expression_value0x00 je převeden na 0000. SET_BIT změní svůj třetí bit (posun 2) na 1, aby se 0100. Tato binární hodnota se pak vrátí jako 4 v šestnáctkové reprezentaci.

B. Úprava hodnoty pomocí vlastního bit_value pomocí SET_BIT

V tomto příkladu je bit_value nastavena na 0 místo výchozí hodnoty 1.

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

Výsledek je 0xABCDEE. expression_value se převede na binární, což je 1010 1011 1100 1101 1110 1111. SET_BIT změní první bit na hodnotu 0 a výsledek se vrátí v šestnáctkovém formátu.

  • LEFT_SHIFT (Transact SQL)
  • RIGHT_SHIFT (Transact SQL)
  • BIT_COUNT (Transact SQL)
  • GET_BIT (Transact SQL)
  • funkce manipulace s bity