![SQL Server 2017从零开始学(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/73/27738073/b_27738073.jpg)
7.2.1 在创建表时添加主键约束
在创建表时,很容易为数据表添加主键约束,但是主键约束在每张数据表中只有一个。创建表时添加主键约束的语法格式有两种。下面进行介绍:
1.添加列级主键约束
列级主键约束就是在数据列的后面直接使用关键字PRIMARY KEY来添加主键约束,并不指明主键约束的名字,这时的主键约束名字由数据库系统自动生成,具体的语法格式如下:
CREATE TABLE table_name ( COLUMN_NAME1 DATATYPE PRIMARY KEY, COLUMN_NAME2 DATATYPE, COLUMN_NAME3 DATATYPE …… );
【例7.1】在test数据库中定义数据表persons,为id添加主键约束。打开【查询编辑器】窗口,在其中输入T-SQL语句:
CREATE TABLE persons ( id INT PRIMARY KEY, name VARCHAR(25) NOT NULL, deptId CHAR(20) NOT NULL, salary FLOAT NOT NULL );
单击【执行】按钮,即可完成创建数据表并添加主键约束的操作,并在【消息】窗格中显示命令已成功完成的信息提示,如图7-1所示。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P150_10098.jpg?sign=1739516857-ooMoMFlQGGYE2NjTlgncplsM9FpbjOuj-0-39f924d2b426d8d008fbef0633a94971)
图7-1 执行T-SQL语句
执行完成之后,选择新创建的数据表,然后打开该数据表的设计图,即可看到该数据表的结构,其中前面带钥匙标志的列被定义为主键约束,如图7-2所示。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P150_10099.jpg?sign=1739516857-YZRA5IXhlK4wBzzgvxXNhOo129yK6Duy-0-b074832706aa5dfbd98fa928326c27dd)
图7-2 表设计界面
2.添加表级主键约束
表级主键约束也是在创建表时添加,但是需要指定主键约束的名字。另外,设置表级主键约束可以设置联合主键,具体的语法格式如下:
CREATE TABLE table_name ( COLUMN_NAME1 DATATYPE, COLUMN_NAME2 DATATYPE, COLUMN_NAME3 DATATYPE …… [CONSTRAINT constraint_name] PRIMARY KEY(column_name1, column_name2,…) );
主要参数介绍如下:
• constraint_name:为主键约束的名字,可以省略。省略后,由数据库系统自动生成。
• COLUMN_NAME1:数据表的列名。
【例7.2】在test数据库中定义数据表persons1,为id添加主键约束。打开【查询编辑器】窗口,在其中输入T-SQL语句:
CREATE TABLE persons1 ( id INT NOT NULL, name VARCHAR(25) NOT NULL, deptId CHAR(20) NOT NULL, salary FLOAT NOT NULL CONSTRAINT 人员编号 PRIMARY KEY(id) );
单击【执行】按钮,即可完成创建数据表操作,并在【消息】窗格中显示命令已成功完成的信息提示,如图7-3所示。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P151_10228.jpg?sign=1739516857-MSGCNjDIqlRzcFapXfqymwkKpwoo2uGh-0-901f448f564bed6f851b3f86b025b81e)
图7-3 执行T-SQL语句
执行完成之后,选择新创建的数据表,然后打开该数据表的设计图,即可看到该数据表的结构,其中前面带钥匙标志的列被定义为主键,如图7-4所示。
![](https://epubservercos.yuewen.com/00DFEA/15936052005026606/epubprivate/OEBPS/Images/Figure-P151_10229.jpg?sign=1739516857-2qFhXNaPkZ0Lm1zfr4baAfxg4Y7mbocc-0-2fb35f1a185ad42eb393bce6f7360f98)
图7-4 为id列添加主键约束
上述两个实例执行后的结果是一样的,都会在id字段上设置主键约束,第二条CREATE语句同时还设置了约束的名称为“人员编号”。