SET_BIT (Transact SQL)
Aplica-se a:SQL Server 2022 (16.x) Banco de Dados SQL do AzureInstância Gerenciada de SQL do AzurePonto de extremidade de análises SQL no Microsoft FabricWarehouse no Microsoft Fabric
SET_BIT retorna expression_value deslocado pelo bit definido por bit_offset. O valor do bit é padronizado como 1 ou é definido por bit_value.
Convenções de sintaxe de Transact-SQL
Sintaxe
SET_BIT ( expression_value, bit_offset )
SET_BIT ( expression_value, bit_offset, bit_value )
Argumentos
expression_value
Qualquer expressão binária ou de número inteiro que não seja um LOB (objeto grande).
bit_offset
Qualquer número inteiro.
Tipos de retorno
O mesmo tipo que expression_value.
O parâmetro bit_offset é usado para identificar o nésimo bit dos dados a serem definidos. Em tipos inteiros, o 0
o bit é o bit menos significativo. Em tipos binários, o 0
o bit é o bit menos significativo no byte mais à direita.
bit_value pode ser um número inteiro ou um bit. No entanto, os únicos valores válidos para bit_value são 1 e 0, independentemente do tipo de dados. SET_BIT gerará um erro se bit_value não for 1 ou 0 ou nulo.
SET_BIT gerará um erro se bit_offset for negativo ou maior que o último bit no tipo de dados.
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).
Exemplos
a. Usar SET_BIT para modificar um valor
Neste exemplo, o terceiro bit (no deslocamento 2, índice baseado em zero) está sendo definido como 1
.
SELECT SET_BIT ( 0x00, 2 ) as VARBIN1;
O resultado é 0x04
. Isso ocorre porque o expression_value de 0x00
é convertido em 0000
. SET_BIT altera seu terceiro bit (deslocamento 2) para 1, tornando-o 0100
. Esse valor binário é retornado como 4
na representação hexadecimal.
B. Use SET_BIT para modificar um valor com um bit_value personalizado
Neste exemplo, o bit_value está sendo definido como 0 em vez do padrão de 1.
SELECT SET_BIT ( 0xabcdef, 0, 0 ) as VARBIN2;
O resultado é 0xABCDEE
. O expression_value é convertido em binário, que é 1010 1011 1100 1101 1110 1111
. SET_BIT altera o primeiro bit para um 0, e o resultado é retornado no formato hexadecimal.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários