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?
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.
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.
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 -
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/
Vous pouvez utiliser Bit
DataType dans SQL Server pour stocker des données booléennes.
Utilisez le type de données Bit
. Il a les valeurs 1 et 0 lorsqu'il est traité en T-SQL natif
SQL Server utilise le type de données Bit
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.
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