SET_BIT (Transact SQL)
platí pro: SQL Server 2022 (16.x)
Azure SQL Database
koncový bod služby Azure SQL Managed Instance
SQL Analytics ve službě Microsoft Fabric
Warehouse 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.
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 0
th bit nejmenším významným bitem. V binárníchtypech 0
ch
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.