SQL Server Bit Datentyp ist 1 Bit numerischer Datentyp. Es wird auch als Boolescher Datentyp in SQL Server verwendet. Sie können nur 0, 1 oder NULL in einem Bitdatentyp speichern. Bei Verwendung als boolescher Datentyp wird 0 als false und 1 als true behandelt.
Speicheroptimierung der Bitspalte
Der Bitdatentyp benötigt nur 1 Bit Speicher. Aber ein Byte enthält 8 Bits.
Der SQL Server optimiert die Speicherung von Bitspalten, indem er andere Bitspalten zu einem einzelnen Byte zusammenführt. Wenn eine Tabelle 8 oder weniger Bitspalten enthält, kombiniert SQL Server diese zu 1 Byte. Wenn es 9 bis 16-Bit-Spalten gibt, werden diese zu 2 Bytes kombiniert.
Boolescher Datentyp
Ein boolescher Wert ist ein Datentyp, der entweder einen wahren oder einen falschen Wert speichern kann. In SQL Server gibt es keinen separaten Booleschen Datentyp. Daher werden stattdessen die Bitdatentypen verwendet. Der Wert 1 ist wahr & 0 als falsch
Beispiele für Bitspalte
Erstellen einer Tabelle mit Bit- oder Boolescher Spalte
Die folgende Abfrage zeigt, wie eine Tabelle mit BIT & Booleschen Spalten erstellt wird
1
2
3
4
5
6
7
|
TABELLE ERSTELLEN testBit (
col1 BIT,
col2 BIT,
col3 BIT,
);
|
Einfügen von Werten in eine bit / Boolesche Spalte
1
2
3
4
5
6
7
8
9
10
11
12
|
in testBit einfügen
(col1, col2,col3)
Werte (1,0,null)
select * from testBit
——- ——- ——-
1 0 NULL
|
Konvertieren in Bit
Die konvertierenden Zeichenfolgenwerte TRUE und FALSE ergeben 1 für TRUE & 0 für FALSE.
Das Konvertieren anderer Zeichenfolgen führt zu einem Fehler.
Konvertieren in Bit fördert jeden Wert ungleich Null auf 1.
1
2
3
4
5
6
7
8
9
10
11
12
|
in testBit einfügen
(col1, col2, col3)
Werte (‚TRUE‘,’FALSE‘,100)
wählen Sie * aus testBit
***Ergebnis
——- ——- ——-
1 0 1
|
Konvertieren Sie die Bitspalte in Integer
Obwohl der Bitdatentyp ein Zahlendatentyp ist, können Sie sie hinzufügen. Verwenden Sie dazu die cast-Funktion, um sie in integer zu konvertieren, bevor Sie sie hinzufügen
1
2
3
4
|
wählen Sie cast(col1 als int) + cast(col1 als int) + cast(col2 als int)
aus dem testBit
|