Wie man eine Ansichtspalte NOT NULL macht

Ich versuche, eine Ansicht zu erstellen, wo ich möchte eine Spalte, die nur true oder false. Jedoch, es scheint, dass, egal was ich mache, SQL Server (2008) glaubt, dass mein bit-Spalte kann irgendwie null sein.

Ich habe eine Tabelle namens "Produkt" mit der Spalte "Status" die INT, NULL. In einem view möchte ich, um wieder eine Zeile für jede Zeile in der Produkt -, mit einer BIT-Spalte auf true gesetzt, wenn das Produkt.Status-Spalte gleich 3 ist, andernfalls ist das bit-Feld false sein sollte.

Beispiel SQL

SELECT CAST( CASE ISNULL(Status, 0)  
               WHEN 3 THEN 1  
               ELSE 0  
             END AS bit) AS HasStatus  
FROM dbo.Product  

Wenn ich speichern Sie diese Abfrage als Ansicht und betrachten Sie die Spalten im Objekt-Explorer die Spalte HasStatus eingestellt ist BIT, NULL. Aber es sollte niemals NULL sein. Gibt es etwas Magie SQL trick, den ich verwenden können, um die Kraft dieser Spalte NOT NULL.

Beachten Sie, dass, wenn ich entfernen Sie die CAST() rund um die CASE, die Spalte ist richtig eingestellt, wie NOT NULL, aber dann die Spalte Typ INT, das ist nicht das, was ich will. Ich will, dass es BIT. 🙂

Kommentar zu dem Problem
@Gunder: +1, herzlich Willkommen auf StackOverflow. Ich habe formatiert Ihre Frage, haben Sie einen Blick auf Sie, um herauszufinden, über die Formatierung 🙂 Kommentarautor: Peter Lang
Ahh, ich benötigt noch einen Zeilenumbruch vor den code. Danke. 🙂 Kommentarautor: René

InformationsquelleAutor der Frage René | 2010-02-24

Schreibe einen Kommentar