385 votes

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

Quelle est la meilleure pratique pour créer un yes/no c'est-à-dire Boolean lors de la conversion d'un access database ou en général ?

507voto

Guffa Points 308133

L'équivalent est un BIT champ.

Sur SQL vous utilisez 0 y 1 pour définir un champ de bits (tout comme un champ oui/non dans Access). Dans Management Studio, il s'affiche comme une valeur faux/vrai (du moins dans les versions récentes).

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

4 votes

Et si vous liez la table dans une base de données Access, true aura la valeur -1 et false la valeur 0. Du moins dans Access 2003. (C'est la version que j'avais sous la main qui était connectée à la base de données MSSQL d'un client).

3 votes

Veuillez noter que ce n'est pas exactement équivalent. Si une fonction scalaire renvoie un bit, vous devez toujours tester s'il est égal à 0 ou 1. Par exemple, dbo.IsReturnsBit(value) = 1

0 votes

@D-Money : Oui, mais vous n'avez besoin de faire la comparaison que si vous voulez utiliser la valeur dans une condition. Si vous utilisez la valeur dans le résultat, alors vous ne devez pas faire de comparaison.

126voto

Alex Martelli Points 330805

El BIT est généralement utilisé pour stocker boolean valeurs ( 0 para false , 1 para true ).

1 votes

Est BIT spécifié dans la norme SQL ? J'ai du mal à la trouver. Le plus proche que j'ai pu voir est "Boolean type".

1 votes

Le fait que la sémantique des bits et des booléens soit différente vous préoccupe-t-il ?

27voto

Mark Byers Points 318575

Vous pouvez utiliser le bit type de colonne.

23voto

John Mark Points 1127

Vous pouvez utiliser le BIT champ.

Pour ajouter une colonne BIT à une table existante, la commande SQL se présente comme suit :

ALTER TABLE table_name ADD yes_no BIT

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

21voto

P_Fitz Points 77

Vous pouvez utiliser le type de données bit

Les valeurs insérées qui sont supérieures à 0 seront stockées comme '1'.

Les valeurs insérées qui sont inférieures à 0 seront stockées comme '1'.

Les valeurs insérées comme '0' seront stockées comme '0'.

Ceci est vrai pour MS SQL Server 2012 Express

1 votes

Êtes-vous sûr de l'affirmation concernant les valeurs inférieures à 0 ?

3 votes

@BiLaL C'est un comportement commun à la plupart des langues. 0 est faux, tout non 0 est vrai. Il était également courant que -1 soit la valeur par défaut de true, car en binaire signé, tous les bits sont à 1. Aujourd'hui, il est très courant de voir 1 comme valeur par défaut de vrai (seul le bit le moins significatif est activé).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X