Il tipo di dati bit SQL Server è un tipo di dati numerico a 1 bit. Viene anche utilizzato come tipo di dati booleani in SQL Server. È possibile memorizzare solo 0, 1 o NULL in un tipo di dati bit. Quando viene utilizzato come tipo di dati booleani, 0 viene trattato come false e 1 come true.
Ottimizzazione dell’archiviazione della colonna Bit
Il tipo di dati bit richiede solo 1 bit di archiviazione. Ma un byte contiene 8 bit.
SQL Server ottimizza l’archiviazione delle colonne di bit unendo altre colonne di bit in un singolo byte. Se in una tabella sono presenti 8 o meno colonne di bit, SQL server le combina in 1 byte. Se ci sono da 9 colonne fino a 16 bit, le combina in 2 byte.
Tipo di dati booleani
Un tipo di dati booleano è un tipo di dati in grado di memorizzare un valore Vero o Falso. Non esiste un tipo di dati booleani separato in SQL Server. Quindi vengono utilizzati invece i tipi di dati bit. Il valore 1 è vero & 0 false
Esempi di Colonna Bit
Creazione di una Tabella con Bit o Colonna Booleana
La Query riportata di seguito viene illustrato come creare la Tabella con BIT & Boolean Colonne
1
2
3
4
5
6
7
|
CREARE la TABELLA testBit (
col1 PO’,
col2 PO’,
col3 PO’,
);
|
l’Inserimento di Valori in bit/Boolean colonna
1
2
3
4
5
6
7
8
9
10
11
12
|
insert into testBit
(col1, col2,col3)
Values (1,0,null)
select * from testBit
——- ——- ——-
1 0 NULL
|
Conversione in Bit
I valori di stringa di conversione TRUE e FALSE risultano in 1 per TRUE & 0 per FALSE.
La conversione di qualsiasi altra stringa comporta un errore.
La conversione in bit promuove qualsiasi valore diverso da zero a 1.
1
2
3
4
5
6
7
8
9
10
11
12
|
insert into testBit
(col1, col2,col3)
values(‘TRUE’,’FALSE’,100)
select * from testBit
***Risultato
——- ——- ——-
1 0 1
|
la Conversione colonna di bit integer
anche se il tipo di dati bit è un numero del tipo di dati, è possibile aggiungerli. Per fare questo, utilizzare la funzione cast di conversione in intero, prima di aggiungere
1
2
3
4
|
select cast(col1 come int) + cast(col1 come int) + cast(col2 come int)
da testBit
|