Antworten:
Das tut es nicht. Es gibt ein vages Äquivalent:
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
Die beste Lösung, die ich hier gefunden habe, besteht darin, eine Nachschlagetabelle mit den möglichen Werten als Primärschlüssel zu erstellen und einen Fremdschlüssel für die Nachschlagetabelle zu erstellen.
IMHO-Nachschlagetabellen sind der richtige Weg mit referenzieller Integrität. Aber nur, wenn Sie "Evil Magic Numbers" vermeiden, indem Sie einem Beispiel wie diesem folgen: Generieren Sie mit T4 eine Aufzählung aus einer Datenbank-Nachschlagetabelle
Habe Spaß!
CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
RETURN 0
END
GO
CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
RETURN 1
END
-- etc...
Wenn es auf die Leistung ankommt, verwenden Sie immer noch die harten Werte.
Ich fand diesen interessanten Ansatz, als ich Enums in SQL Server implementieren wollte.
Der unten im Link erwähnte Ansatz ist sehr überzeugend, da alle Ihre Anforderungen an die Datenbankaufzählung mit zwei zentralen Tabellen erfüllt werden könnten.