Ich versuche, eine Sicht zu erstellen, in der eine Spalte nur wahr oder falsch sein soll. Es scheint jedoch, dass egal, was ich mache, SQL Server (2008) glaubt, dass meine Bitspalte irgendwie null sein kann.So erstellen Sie eine View-Spalte NOT NULL
Ich habe eine Tabelle namens "Produkt" mit der Spalte "Status", die INT, NULL
ist. In einer Ansicht möchte ich eine Zeile für jede Zeile in Product zurückgeben, wobei eine BIT-Spalte auf "true" gesetzt wird, wenn die Product.Status-Spalte gleich 3 ist, andernfalls sollte das Bitfeld falsch sein.
Beispiel SQL
SELECT CAST(CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE 0
END AS bit) AS HasStatus
FROM dbo.Product
Wenn ich diese Abfrage als Ansicht speichern und an den Spalten im Objekt-Explorer suchen, die Spalte HasStatus auf BIT, NULL
gesetzt. Aber es sollte nie NULL sein. Gibt es einen magischen SQL-Trick, den ich verwenden kann, um diese Spalte zu zwingen, NOT NULL
zu sein.
Beachten Sie, dass, wenn ich die CAST()
um die CASE
zu entfernen, wird die Spalte richtig eingestellt als NOT NULL
, aber dann der Typ der Spalte wird auf INT
, das nicht das, was ich will. Ich möchte, dass es BIT
ist. :-)
@Gunder: +1, Willkommen bei StackOverflow. Ich habe deine Frage formatiert, sieh sie dir an, um etwas über Formatierung herauszufinden :) –
Ahh, ich brauchte noch einen Zeilenumbruch vor dem Code. Vielen Dank. :-) –