Je travaille sur un projet et je veux stocker des informations facilement énumérées dans une table. Le type de données enum de MySql fait exactement ce que je veux: http://dev.mysql.com/doc/refman/5.0/en/enum.html. Existe-t-il un équivalent dans SQL Server 2005?Est-ce que SQL Server 2005 a un équivalent au type de données ENUM de MySql?
Je sais que je pouvais stocker les valeurs possibles dans un tableau de type avec une clé, mais je préfère ne pas avoir de lien vers elle pour obtenir une description. Nos standards de base de données ne nous permettent pas de créer un lien sur des champs non-entiers ou uniquesidentifier, ainsi le stockage des clés possibles en tant que caractères est également disponible.
Cela fonctionne pour moi. Il reste une préoccupation: existe-t-il un moyen facile de dire quelles sont les valeurs valables pour l'énumération sans sélectionner la contrainte? Je comprends qu'il n'y en a pas et je vais devoir prendre ma décision en fonction de cela. –
Je ne suis pas sûr de ce que vous entendez par "sélection" de la contrainte, mais vous pourriez être en mesure d'intégrer les résultats de cette requête système dans quelque chose d'utilisable pour vos besoins. définition select de sys.check_constraints où [nom] = « yourConstraintName » – Nikki9696
Pour les deux ENUM et contrôleront les contraintes, vous pouvez interroger les tables système et vous obtenez une chaîne avec la syntaxe complète spécifiant la liste des valeurs. Ensuite, vous devez analyser cela pour obtenir la liste dans un format utilisable. Il est assez incommode d'interroger les métadonnées comme s'il s'agissait de données. –