2012-08-16 57 views
20

如何在列上添加約束條件以使其僅包含以下值?你稱這種類型的約束是什麼?將SQL Server列限制爲可能值列表

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

回答

37

可以使用CHECK約束

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

MSDN link

+0

我如何在SSMS表格構造函數中執行此操作? – EgoPingvina 2017-10-03 19:56:05

2

使用枚舉表是很長的路要走。

+0

新手可能不知道「枚舉表」的含義。一個例子會很有幫助。 – Woody 2017-07-25 13:43:59

3

是的,檢查約束是你需要的。 您可以在表聲明處聲明檢查約束:

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