Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              gäller för: SQL Server 2022 (16.x) 
Azure SQL Database
Azure SQL Managed Instance
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
              SET_BIT returnerar expression_value förskjutning av den bit som definieras av bit_offset. Bitvärdet är som standard 1 eller anges av bit_value.
              
              
              Transact-SQL syntaxkonventioner
Syntax
SET_BIT ( expression_value, bit_offset ) 
SET_BIT ( expression_value, bit_offset, bit_value )
Argument
expression_value
Alla heltal eller binära uttryck som inte är ett stort objekt (LOB).
bit_offset
Alla heltal.
Returtyper
Samma typ som expression_value.
Parametern bit_offset används för att identifiera nden databit som ska anges. I heltalstyper är den 0th biten den minst betydande biten. I binära typer är den 0th biten den minst betydande biten i den högra byte.
bit_value kan vara ett heltal eller lite. De enda giltiga värdena för bit_value är dock 1 och 0, oavsett datatyp. SET_BIT utlöser ett fel om bit_value inte är 1 eller 0 eller null.
SET_BIT utlöser ett fel om bit_offset är negativ eller större än den sista biten i datatypen.
Anmärkningar
Funktioner för distribuerad fråga för bitmanipuleringsfunktioner i länkad server eller ad hoc-frågor (OPENQUERY) stöds inte.
Stora objektdatatyper (LOB) i databasmotorn kan lagra data som överstiger 8 000 byte. Dessa datatyper lagrar data på en rad-overflow datasida. En LOB omfattar även datatyper som lagrar data på dedikerade LOB-sidstrukturer, som använder en text eller en bildpekare med referenser på rad till LOB-datasidor. Mer information om datalagring finns i arkitekturguiden Sidor och omfattningar.
Bitmanipuleringsfunktionerna fungerar på tinyint, smallint, int, bigint, binary(n), och varbinary(n) datatyper. Stora objektdatatyper (LOB), till exempel varchar(max), nvarchar(max), varbinary(max), image, ntext, text, xmloch CLR-blobtyper (Common Language Runtime) stöds inte.
Exempel
A. Använd SET_BIT för att ändra ett värde
I det här exemplet anges den tredje biten (vid förskjutning 2, nollbaserat index) till 1.
SELECT SET_BIT ( 0x00, 2 ) as VARBIN1;
Resultatet är 0x04. Det beror på att expression_value för 0x00 konverteras till 0000. SET_BIT ändrar sin tredje bit (förskjutning 2) till 1, vilket gör att den 0100. Det här binära värdet returneras sedan som 4 i hexadecimal representation.
B. Använd SET_BIT för att ändra ett värde med en anpassad bit_value
I det här exemplet anges bit_value till 0 i stället för standardvärdet 1.
SELECT SET_BIT ( 0xabcdef, 0, 0 ) as VARBIN2;
Resultatet är 0xABCDEE. 
              expression_value konverteras till binärt, vilket är 1010 1011 1100 1101 1110 1111. SET_BIT ändrar den första biten till 0 och resultatet returneras i hexadecimalt format.