web-dev-qa-db-ja.com

SQL Server列を可能な値のリストに制限する

次の値のみを含めることができるように列に制約を設定するにはどうすればよいですか?このタイプの制約とは何ですか?

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

[〜#〜] check [〜#〜]制約を使用できます

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

MSDNリンク

55
Joe G Joseph

はい、制約をチェックしてください。テーブル宣言でチェック制約を宣言できます。

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

列挙テーブルを使用する方法があります。

2
Michal Klouda