Funzioni di modifica dei bit
Si applica a: SQL Server 2022 (16.x) database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Le funzioni di manipolazione dei bit, ad esempio lo spostamento, il recupero (ottenimento), l'impostazione o il conteggio di bit singoli all'interno di un valore intero o binario, consentono di elaborare e archiviare i dati in modo più efficiente rispetto ai singoli bit.
Un bit ha due valori (1
o 0
, che rappresentano on
o off
o true
o false
). Un byte è costituito da una sequenza di 8 bit. Le funzioni di manipolazione dei bit in SQL Server considerano il bit più "a sinistra" in un byte come il più grande (il più significativo). Per le funzioni di manipolazione dei bit, i bit vengono numerati da destra a sinistra, con il bit 0
che è il più piccolo e il bit 7
quello più a sinistra e più grande.
Ad esempio, una sequenza binaria di 00000111
è l'equivalente decimale del numero 7
. È possibile calcolare questo valore usando le potenze di 2 come indicato di seguito:
00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)
Ciò significa che, mentre SQL Server archivia questo valore come 11100000
(invertito da byte), le funzioni di manipolazione dei bit lo considerano come se fosse 00000111
.
Quando si osservano più byte, il primo byte (lettura da sinistra a destra) è il più grande.
È possibile usare le immagini seguenti per visualizzare il modo in cui le funzioni di manipolazione dei bit di SQL Server interpretano i valori delle espressioni di bit e byte e gli offset di bit.
int
smallint
Funzioni
Sono disponibili cinque funzioni per la modifica dei bit in SQL Server:
Tutte e cinque le funzioni sono pensate per operare su tipi di dati tinyint, smallint, int, bigint, binary(n) e varbinary(n).
I tipi seguenti non sono supportati: varchar, nvarchar, image, ntext, text, xml e table.
Osservazioni:
Nell'implementazione iniziale, non è supportata la funzionalità Query distribuita per le funzioni di manipolazione dei bit all'interno di un server collegato o di query ad hoc (OPENQUERY).