Condividi tramite


SET_BIT (Transact SQL)

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

SET_BIT restituisce l'offset di expression_value dal bit definito da bit_offset. Il valore del bit predefinito è 1 o viene impostato da bit_value.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

SET_BIT ( expression_value, bit_offset ) 
SET_BIT ( expression_value, bit_offset, bit_value )

Argomenti

expression_value

Qualsiasi espressione integer o binaria diversa da un Large Object (LOB).

bit_offset

Qualsiasi valore integer.

Tipi restituiti

Stesso tipo di expression_value.

Il parametro bit_offset viene usato per identificare il bit dei dati da impostare. Nei tipi integer, il bit 0 è quello meno significativo. Nei tipi binari, il bit 0 è quello meno significativo nel byte più a destra.

bit_value può essere un valore integer o un bit. Tuttavia, gli unici valori validi per bit_value sono 1 e 0, indipendentemente dal tipo di dati. SET_BIT genererà un errore se bit_value non è 1 o 0 o Null.

SET_BIT genererà un errore se bit_offset è negativo o maggiore dell'ultimo bit nel tipo di dati.

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).

Esempi

R. Usare SET_BIT per modificare un valore

In questo esempio il terzo bit (in corrispondenza dell'offset 2, indice in base zero) viene impostato su 1.

SELECT SET_BIT ( 0x00, 2 ) as VARBIN1;

Il risultato è 0x04. Questo perché il valore expression_value di 0x00 viene convertito in 0000. SET_BIT modifica il terzo bit (offset 2) in 1, rendendolo 0100. Questo valore binario viene quindi restituito come 4 nella rappresentazione esadecimale.

B. Usare SET_BIT per modificare un valore con un valore bit_value personalizzato

In questo esempio il valore bit_value viene impostato su 0 anziché sul valore predefinito 1.

SELECT SET_BIT ( 0xabcdef, 0, 0 ) as VARBIN2;

Il risultato è 0xABCDEE. Il valore expression_value viene convertito in binario, ovvero 1010 1011 1100 1101 1110 1111. SET_BIT modifica il primo bit in 0 e il risultato viene restituito in formato esadecimale.

Vedi anche