Réponses:
Ce n'est pas le cas. Il y a un vague équivalent:
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
La meilleure solution que j'ai trouvée à cet égard est de créer une table de recherche avec les valeurs possibles en tant que clé primaire et de créer une clé étrangère pour la table de recherche.
Les tables de recherche IMHO sont la voie à suivre, avec l'intégrité référentielle. Mais seulement si vous évitez "Evil Magic Numbers" en suivant un exemple tel que celui-ci: Générer une énumération à partir d'une table de recherche de base de données en utilisant T4
S'amuser!
CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
RETURN 0
END
GO
CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
RETURN 1
END
-- etc...
Là où la performance compte, utilisez toujours les valeurs strictes.
J'ai trouvé cette approche intéressante lorsque je voulais implémenter des énumérations dans SQL Server.
L'approche mentionnée ci-dessous dans le lien est assez convaincante, étant donné que tous vos besoins d'énumération de base de données pourraient être satisfaits avec 2 tables centrales.