J'essaie d'avoir cette colonne calculée:
3 Réponses :
Ceci fonctionne:
CREATE TABLE dbo.Item
(
ItemId int NOT NULL IDENTITY (1, 1),
SpecialItemId int NULL,
IsSpecialItem AS
CAST(CASE ISNULL(SpecialItemId, 0) WHEN 0 THEN 0 ELSE 1 END AS bit)
)
Cela ne fonctionne que lorsque la colonne testée est numérique. Si SpecialItemid est Nvarchar et a une valeur, cela provoque une erreur. Voir mon autre réponse
SQL Server n'a pas de type de données Boolean natif (en ce sens que vous pouvez utiliser une variable à la place d'une expression booléenne, comme Sélectionnez * à partir de l'élément ISSPecialitem code>). La seule façon dont vous pouvez le représenter est avec quelque chose comme Mark suggère, à l'aide de valeurs réservées (dans ce cas, votre requête serait SELECT * à partir de l'élément d'ISSPecialitem = 1 code>). P>
La réponse de Mark Byer provoque une erreur avec NvarchaRar code> Colonnes, les œuvres suivantes, que ce soit La colonne est int code> ou nvarchar code>: