如何使用 SQL 服务器创建允许 2 个选项的约束?

How to create a constraint that allows 2 options using SQL Server?

任何人都可以帮助说明我如何使用 SQL 服务器创建一个允许 2 个选项的约束吗?

例如,我希望只有在 SQL 方面具有中级或高级知识的新候选人才有可能添加。

所以,我像下面这样编码,但它不起作用。

CREATE TABLE Candidates
( 
    Name VARCHAR(150) NOT NULL UNIQUE, 
    BirthDate DATE NOT NULL,
    SQLlevel VARCHAR(100) NOT NULL 
        CHECK (SQLlevel = 'Intermediate' OR 'Advanced') 
)

提前致谢。

您可以使用 in:

CREATE TABLE Candidates (
    Name VARCHAR(150) NOT NULL UNIQUE,
    BirthDate DATE NOT NULL,
    SQLlevel VARCHAR (100) NOT NULL,
    CHECK (SQLlevel IN ('Intermediate', 'Advanced'))
)

解释一下为什么您的布尔表达式不起作用:

SQLlevel = 'Intermediate' OR 'Advanced'

您在 OR 之后的表达式不是布尔表达式,它只是一个文字。您必须每次都定义比较运算符。如果您想使用 OR,则需要执行以下操作:

CREATE TABLE Candidates (Name varchar(150) NOT NULL UNIQUE,
                         BirthDate date NOT NULL,
                         SQLlevel varchar(100) NOT NULL CHECK (SQLlevel = 'Intermediate' OR SQLlevel = 'Advanced'));

您漏掉了 CONSTRAINT 这个词和一个名字

CREATE TABLE Candidates
( 
    Name VARCHAR(150) NOT NULL UNIQUE, 
    BirthDate DATE NOT NULL,
    SQLlevel VARCHAR(100) NOT NULL,
    constraint chck_candidates_levels
        CHECK (SQLlevel in('Intermediate', 'Advanced'))
);