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>: