web-dev-qa-db-fra.com

Existe-t-il un type de données booléen dans Microsoft SQL Server comme dans MySQL?

Existe-t-il un type de données booléen dans Microsoft SQL Server comme dans MySQL?

Si oui, quelle est l'alternative dans MS SQL Server?

289
TinTin

Vous pouvez utiliser le type de données BIT pour représenter des données booléennes. La valeur d'un champ BIT est 1,0 ou null.

389
kristian

Vous voudrez peut-être utiliser le type de données BIT , dont le paramètre est probablement NOT NULL:

Citant le article MSDN :

bit (Transact-SQL)

Un type de données entier pouvant prendre une valeur de 1, 0 ou NULL.

Le moteur de base de données SQL Server optimise le stockage des colonnes de bits. S'il y a au moins 8 colonnes de bits dans une table, les colonnes sont stockées sous la forme d'un octet. Si le nombre de colonnes est compris entre 9 et 16 bits, les colonnes sont stockées sous forme de 2 octets, etc.

Les valeurs de chaîne TRUE et FALSE peuvent être converties en valeurs de bits: TRUE est converti en 1 et FALSE en 0.

80
Daniel Vassallo

Vous recherchez une bit. Il enregistre 1 ou 0 (ou NULL).

Sinon, vous pouvez utiliser les chaînes 'true' et 'false' au lieu de 1 ou 0, comme suit:

declare @b1 bit = 'false'
print @b1                    --prints 0

declare @b2 bit = 'true'
print @b2                    --prints 1

En outre, toute valeur non nulle (positive ou négative) donne une valeur 1 (ou la convertit dans certains cas).

declare @i int = -42
print cast(@i as bit)    --will print 1, because @i is not 0

Notez que SQL Server utilise une logique à trois valeurs (true, false et NULL), car NULL est une valeur possible du type de données bit. Voici les tables de vérité pertinentes - 

 enter image description here

Plus d'informations sur trois valeurs logiques

Exemple de logique à trois valeurs dans SQL Server

http://www.firstsql.com/idefend3.htm

https://www.simple-talk.com/sql/learn-sql-server/sql-and-the-snare-of-three-valued-logic/

38
iliketocode

Vous pouvez utiliser Bit DataType dans SQL Server pour stocker des données booléennes.

7
Pranay Rana

Utilisez le type de données Bit. Il a les valeurs 1 et 0 lorsqu'il est traité en T-SQL natif

7
Rodrick Chapman

SQL Server utilise le type de données Bit

6
HackedByChinese

Vous pouvez utiliser le type de données BIT. C'est 0, 1 ou null . Si vous voulez spécifiquement TRUE ou FALSE, vous pouvez utiliser l'enum pour transformer 0 et 1 en True et False. Et transmettez cela comme une chaîne. 

0
ayush jain

J'utilise le type de données TINYINT(1) afin de stocker des valeurs booléennes dans SQL Server via BIT est très efficace

0
Bipul Roy