web-dev-qa-db-fra.com

Comment créer un champ booléen oui / non dans SQL Server?

Quelle est la meilleure pratique pour créer un champ booléen oui/non lors de la conversion à partir d’une base de données d’accès ou en général?

290
leora

L'équivalent est un champ de bits.

En SQL, vous utilisez 0 et 1 pour définir un champ de bits (tout comme un champ oui/non dans Access). Dans Management Studio, il s’affiche sous forme de valeur false/true (du moins dans les versions récentes).

Lors de l'accès à la base de données via ASP.NET, le champ sera présenté comme une valeur booléenne.

392
Guffa

Le type de données BIT est généralement utilisé pour stocker des valeurs booléennes (0 pour faux, 1 pour vrai).

96
Alex Martelli

Vous pouvez utiliser le type de colonne bit.

21
Mark Byers

Vous pouvez utiliser le type de données bit

Les valeurs insérées supérieures à 0 seront stockées sous la forme '1'

Les valeurs insérées inférieures à 0 seront stockées sous la forme '1'

Les valeurs insérées comme "0" seront stockées comme "0"

Cela est vrai pour MS SQL Server 2012 Express

17
P_Fitz

Vous pouvez utiliser le champ BIT.

Pour ajouter une colonne BIT à une table existante, la commande SQL ressemblerait à ceci:

ALTER TABLE table_name ADD yes_no BIT

Si vous voulez créer une nouvelle table, vous pouvez faire: CREATE TABLE table_name (yes_no BIT).

17
John Mark

Exemple d'utilisation lors de la création d'une table:

[ColumnName]     BIT   NULL   DEFAULT 0
14
torina

Il existe déjà des réponses indiquant l'utilisation de Bit. Je vais ajouter plus à ces réponses.

Vous devez utiliser bit pour représenter les valeurs booléennes.

Remarques de l'article MSDN.

Le bit peut 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 8 colonnes de bits ou moins dans une table, les colonnes sont stockées sous la forme d'un octet. S'il y a de 9 à 16 colonnes, 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.

La conversion en bits favorise toute valeur non nulle en 1.

référence

Remarque: Il est recommandé de conserver les valeurs 1 et 0 uniquement avec le type de données NOT NULL

As Bit ont les valeurs 1, 0 et NULL. Voir la table de vérité pour ceci. Alors planifiez les valeurs en conséquence. Cela pourrait ajouter de la confusion en autorisant une valeur NULL pour le type de données bit.

enter image description here

référence

14
Somnath Muluk

Vous pouvez utiliser le champ BIT

Pour créer une nouvelle table:

CREATE TABLE Tb_Table1
(
ID              INT,
BitColumn       BIT DEFAULT 1
)

Ajout de colonne dans la table existante:

ALTER TABLE Tb_Table1 ADD BitColumn  BIT DEFAULT 1

Pour insérer un enregistrement:

INSERT Tb_Table1 VALUES(11,0)
10
Sachith

bit sera le plus simple et prend également le moins de place possible. Pas très bavard comparé à "Y/N" mais ça me va.

9
o.k.w

bit est l'option la plus appropriée. Sinon, j’ai utilisé une fois int à cette fin. 1 pour true & 0 pour false.

5
Baqer Naqvi

Dans SQL Server Management Studio, quelle que soit la version, utilisez BIT comme type de données.

qui vous fournira les options True ou False Value. si vous voulez utiliser uniquement 1 ou 0, vous pouvez utiliser cette méthode:

CREATE TABLE SampleBit(
    bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)

Mais je conseillerai strictement BIT comme l’option MEILLEURE. J'espère que c'est aider quelqu'un.

0
PatsonLeaner