制作新的主键也有限制

Making a new Primary Key also have constraints

我是 SQL 服务器的新手,运行 遇到了一个看似基本的问题。

基本上我的 table COPY_TYPE 有一个主键 C_NAMEC_NAME 上的约束:VT, VCD, DVD

我将如何着手写出来?我的错误尝试如下:

create table COPY_TYPE 
(
     C_NAME char(5) primary key, 
          constraint PK_C_NAME check ( 'VT', 'VCD', 'DVD')
);

我知道这是错误的,但我还不知道如何开始用这种语言思考。

这里有一个例子供您参考:

CREATE TABLE Persons
(
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CONSTRAINT pk_PersonID PRIMARY KEY (P_Id, LastName)
)
create table COPY_TYPE (C_NAME char(5) primary key, constraint PK_C_NAME     
check ( C_NAME = 'VT' or C_NAME = 'VCD' or C_NAME = 'DVD'));

你非常接近 - 我倾向于明确命名我的约束,所以我会这样写出来:

CREATE TABLE dbo.COPY_TYPE 
(
     C_NAME char(5) NOT NULL 
         CONSTRAINT PK_Copy_Type PRIMARY KEY CLUSTERED
         CONSTRAINT CHK_C_NAME CHECK (C_NAME IN ('VT', 'VCD', 'DVD')),
     ... (other columns to follow) ....
);