制作新的主键也有约束

时间:2016-02-24 20:55:16

标签: sql constraints primary-key sql-server-2014

我是SQL Server的新手,我遇到了一个基本问题。

基本上我的表COPY_TYPE有一个主键C_NAME和一个约束C_NAMEVT, VCD, DVD

我如何写出来?我的不良尝试如下:

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

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

3 个答案:

答案 0 :(得分:2)

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

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) ....
);

答案 1 :(得分:0)

以下是您要遵循的示例:

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)
)

答案 2 :(得分:0)

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'));