web-dev-qa-db-fra.com

Limiter la colonne SQL Server à une liste de valeurs possibles

Comment puis-je placer une contrainte sur une colonne afin qu'elle ne puisse contenir que les valeurs suivantes? Comment appelez-vous ce type de contrainte?

Allowed values: "yes", "no" or "maybe"
Column Data Type: nvarchar(5)
DBMS: SQL Server 2008
30
Dean

vous pouvez utiliser une contrainte [~ # ~] check [~ # ~]

ALTER TABLE <table>
ADD CONSTRAINT chk_val CHECK (col in ('yes','no','maybe'))

lien MSDN

55
Joe G Joseph

Oui, vérifiez qu'une contrainte est bien celle dont vous avez besoin. Vous pouvez déclarer une contrainte de vérification lors de la déclaration de table:

CREATE TABLE test(
    _id BIGINT PRIMARY KEY NOT NULL,
    decision NVARCHAR(5),
    CHECK (decision in ('yes','no','maybe'))
);
7
I159

L'utilisation de la table d'énumération est une solution.

2
Michal Klouda