文章目录
- 准备知识
- 定义唯一约束
- 使用SSMS工具定义唯一约束
- 使用SQL方式定义唯一约束
- 方式一:在创建数据表的时候定义唯一约束
- 方式二:修改数据表定义唯一约束
- 删除唯一约束
- 使用SSMS工具删除唯一约束
- 方式一:在对象资源管理器中删除唯一约束
- 方式二:在表设计器中删除唯一约束
- 使用SQL方式删除唯一约束
准备知识
如果要求数据表中的某列不能输入重复值,有两种约束可以做到。一种是主键约束,即该列是数据表的主键;另一种则是唯一约束,对于不是主键的列,唯一约束能够确保不会出现重复值(可以为NULL值)。
唯一约束允许 NULL 值,这一点与主键约束不同。 不过,当与参与唯一约束的任何值一起使用时,每列只允许一个空值。 外键约束可以引用 唯一约束。
默认情况下,向表中的现有列添加唯一约束后,数据库引擎将检查列中的现有数据,以确保所有值都是唯一的。 如果向含有重复值的列添加唯一约束, 数据库引擎将返回错误消息,并且不添加约束。
数据库引擎将自动创建唯一索引来强制执行唯一约束的唯一性要求。 因此,如果试图插入重复行, 数据库引擎将返回错误消息,说明该操作违反了唯一约束,不能将该行添加到表中。 除非显式指定了聚集索引,否则,默认情况下将创建唯一的非聚集索引以强制执行唯一约束。
定义唯一约束
使用SSMS工具定义唯一约束
- 展开“数据库”,然后展开相应的数据库,再展开数据库中的“表”,右击需要定义唯一约束的数据表,选择“设计”。
- 进入表设计器界面,点击工具栏的“管理索引和键”按钮,或者右键选择“索引和键”。
- 进入“索引/键”对话框,点击“添加”。
- 单击右侧的“类型”,在右侧下拉框中选择“唯一键”。
- 单击右侧的“列”,点击右边的“…”按钮。
- 进入索引列对话框,在列名中选择需要添加唯一性约束的属性列,点击“确定”。
- 在“标识”的“(名称)”中修改唯一约束的名称,点击“关闭”。
- 点击保存键,或者按Ctrl+F5键进行保存。展开数据表,展开“键”,可以看到定义的唯一约束。
使用SQL方式定义唯一约束
方式一:在创建数据表的时候定义唯一约束
- 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
- 输入创建SQL代码
USE schoolDB --打开数据库schoolDB
GO
IF EXISTS(SELECT * FROM sysobjects WHERE name='student')
DROP TABLE student --检查student是否已经存在,如果存在,则删除
GO
CREATE TABLE student --表名为student
(
StuID int NOT NULL, --学生学号
StuName varchar(15) UNIQUE NOT NULL, --学生姓名
Sex char(2) NULL, --性别
Major varchar(20) NULL, --所选专业
)
- 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
- 点击“执行”按钮,或按住F5,执行SQL代码。
- 查看数据表中的键。
方式二:修改数据表定义唯一约束
- 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
- 输入创建SQL代码
USE schoolDB --打开数据库schoolDB
GO
ALTER TABLE student
ADD CONSTRAINT UQ_student_StuName UNIQUE(StuName)
--将student表中的StuName列定义唯一约束
- 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
- 点击“执行”按钮,或按住F5,执行SQL代码。
- 查看数据表中的键。
删除唯一约束
使用SSMS工具删除唯一约束
方式一:在对象资源管理器中删除唯一约束
- 展开需要删除唯一约束的数据表,然后再展开“键”。
- 右击需要删除的唯一约束,选择“删除”。
- 在删除对象界面,点击“确定”,即可完成唯一约束删除。
方式二:在表设计器中删除唯一约束
- 右击需要删除唯一约束的数据表,选择“设计”。
- 进入表设计器界面,点击工具栏的“管理索引和键”按钮,或者右键选择“索引和键”。
- 在“索引/键”对话框中选择需要删除的唯一约束,点击“删除”,完成唯一约束的删除。
使用SQL方式删除唯一约束
- 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
- 输入创建SQL代码
USE schoolDB --打开schoolDB数据库
GO
ALTER TABLE class
DROP CONSTRAINT UQ_class_ClassName --删除表class的唯一约束UQ_class_ClassName
- 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
- 点击“执行”按钮,或按住F5,执行SQL代码。
- 唯一约束已被删除。