Funções de manipulação de bits
Aplica-se a: SQL Server 2022 (16.x) Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric
Funções de manipulação de bits, como mover, recuperar (obter), definir ou contar bits únicos dentro de um valor inteiro ou binário, permitem processar e armazenar dados com mais eficiência do que com bits individuais.
Um bit tem dois valores (1
ou 0
, que representam on
ou off
, ou true
ou false
). Um byte é composto por uma sequência de 8 bits. As funções de manipulação de bits no SQL Server tratam o bit "mais à esquerda" em um byte como o maior (o mais significativo). Para as funções de manipulação de bits, os bits são numerados da direita para a esquerda, sendo o bit 0
o mais à direita e o menor, e o bit 7
, o mais à esquerda e o maior.
Por exemplo, uma sequência binária de 00000111
é o equivalente decimal do número 7
. Você pode calcular isso usando potências de 2 da seguinte maneira:
00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)
O que isso significa na prática é que, embora o SQL Server armazene esse valor como 11100000
(invertido por bytes), as funções de manipulação de bits o tratarão como se fosse 00000111
.
Ao examinar vários bytes, o primeiro byte (lendo da esquerda para a direita) é o maior.
Você pode usar as imagens a seguir para visualizar como as funções de manipulação de bits do SQL Server interpretam valores de expressão de bit e byte e deslocamentos de bits.
int
smallint
Funções
Há cinco funções disponíveis para manipular bits no SQL Server:
Todas as cinco funções destinam-se a operar em tipos de dados tinyint, smallint, int, bigint, binary(n) e varbinary(n).
Não há suporte para os seguintes tipos: varchar, nvarchar, image, ntext, text, xml e table.
Comentários
Na implementação inicial, não haverá suporte para a funcionalidade de Consulta Distribuída para as funções de manipulação de bits no servidor vinculado ou em consultas ad hoc (OPENQUERY).