SQLServer:如何将固定值绑定到列?

Sha*_*oni 4 sql-server bind

假设我定义了一个char列Type.我想严格说它的价值,例如(黑色,白色,红色,蓝色)只...

我怎样才能做到这一点??

我所知道的,这在Access中很容易:P

Luk*_*keH 8

如果只有几个允许值,那么您可以使用CHECK约束:

ALTER TABLE dbo.Your_Table
ADD CONSTRAINT CK_YourTable_YourColumn
    CHECK (Your_Column IN ('Black', 'White', 'Red', 'Blue'))
Run Code Online (Sandbox Code Playgroud)

如果有更多值,则可以使用查找表和FOREIGN KEY约束:

CREATE TABLE dbo.Lookup_Colours (Colour VARCHAR(10))
-- then populate Lookup_Colours with all permitted values

ALTER TABLE dbo.Your_Table
ADD CONSTRAINT FK_YourTable_YourColumn
    FOREIGN KEY (Your_Column)
    REFERENCES dbo.Lookup_Colours (Colour)
Run Code Online (Sandbox Code Playgroud)