J'essaye de créer une vue où je veux qu'une colonne soit vraie ou fausse. Cependant, il semble que peu importe ce que je fais, SQL Server (2008) pense que ma colonne de bits peut être nulle.Comment faire une colonne de vue NOT NULL
J'ai une table appelée "Produit" avec la colonne "Statut" qui est INT, NULL
. Dans une vue, je souhaite renvoyer une ligne pour chaque ligne dans Product, avec une colonne BIT définie sur true si la colonne Product.Status est égale à 3, sinon le champ de bit doit être false.
Exemple SQL
SELECT CAST(CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE 0
END AS bit) AS HasStatus
FROM dbo.Product
Si j'enregistre cette requête en vue et regarder les colonnes dans l'Explorateur d'objets, la colonne HasStatus est réglé sur BIT, NULL
. Mais il ne devrait jamais être NULL. Y at-il un truc magique magique que je peux utiliser pour forcer cette colonne à être NOT NULL
.
Notez que, si je retire le CAST()
autour de la CASE
, la colonne est correctement réglée comme NOT NULL
, mais le type de la colonne est réglée sur INT
, ce qui est pas ce que je veux. Je veux que ce soit BIT
. :-)
@Gunder: +1, Bienvenue dans StackOverflow. J'ai formaté votre question, jetez un coup d'oeil à cela pour découvrir le formatage :) –
Ahh, j'avais besoin d'un saut de ligne de plus avant le code. Merci. :-) –