Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2022 (16.x)
Azure SQL Database
AzureSQL Managed
Instance SQL Analytics endpoint em Microsoft Fabric
Warehouse em Microsoft Fabric
SQL database em Microsoft Fabric
Funções de manipulação de bits, como mover, recuperar (obter), definir ou contar bits individuais dentro de um valor inteiro ou binário, permitem-lhe processar e armazenar dados de forma mais eficiente 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" de 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 maior.
Por exemplo, uma sequência binária de 00000111 é o equivalente decimal do número 7. Pode calcular isto usando potências de 2 da seguinte forma:
00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)
Isto significa na prática que, enquanto o SQL Server armazena este valor como 11100000 (byte-reversed), as funções de manipulação de bits tratam-no como se fosse 00000111.
Ao olhar para múltiplos bytes, o primeiro byte (lendo da esquerda para a direita) é o maior.
Pode usar as imagens seguintes para visualizar como as funções de manipulação de bits do SQL Server interpretam valores de expressões de bits e bytes e deslocamentos de bits.
int
smallint
Funções
Existem cinco funções disponíveis para manipular bits no SQL Server:
As cinco funções destinam-se a operar nos tipos de dados tinyint, smallint, int, bigint, binary(n) e varbinary(n).
Os seguintes tipos não são suportados: varchar, nvarchar, image, ntext, text,xml e table.
Observações
Na implementação inicial, a funcionalidade de Consulta Distribuída para as funções de manipulação de bits dentro do servidor ligado ou consultas ad hoc (OPENQUERY) não será suportada.