1
数据库技术及应用
1.7.4.3 4.4.3 UNIQUE
4.4.3 UNIQUE

UNIQUE约束通过确保在列中不输入重复值保证一列或多列的实体完整性,例如,公民身份证号这一列就不允许出现重复值,每个UNIQUE约束都要创建一个唯一索引。对于实施UNIQUE约束的列,不允许有任意两行具有相同的索引值。与主键不同的是, SQL Server允许为一个表创建多个UNIQUE约束。

【例4-13】在学校的课程管理中,不允许两门名称完全相同的课程存在,也就是说在Course_info表中Cname应该是唯一的,应当采用UNIQUE约束。该如何操作呢?同样有两种方法,即在SSMS管理器或者采用T-SQL语句来完成唯一约束设置。

1.在SSMS管理器完成唯一约束设置

在SSMS管理器完成唯一约束设置的具体操作步骤如下:

(1)启动SQL Server Management Studio,在其“对象资源管理器”窗格中依次展开“数据库”节点、Student节点和“表”节点,在dbo. Course_info上单击鼠标右键,在弹出的快捷菜单中执行“设计”命令,如图4-27所示。

图4-27 执行“设计”命令

(2)在打开窗口的右上部分,右键单击要设置唯一键的列,如Cname,在弹出的快捷菜单中执行“索引/键”命令,如图4-28所示。

(3)打开“索引/键”对话框,单击左下方的“添加”按钮,然后选择右侧列表框中的“列”选项,该选项右边弹出按钮,如图429所示。

(4)单击“列”选项右边的按钮,弹出“索引列”对话框,在“列名”的下拉列表中选择要设置唯一键的Cname字段,单击“确定”按钮,如图430所示。

图4-28 执行“索引/键”命令

图4-29 编辑“索引/键”的属性

图4-30 选定唯一键字段

(5)返回“索引/键”对话框,单击右下方的“关闭”按钮即可。

2.采用T-SQL语句完成唯一约束设置

定义唯一约束的基本格式如下:

其实,更普遍的做法是在创建Course_info表时,就把唯一键设置写进T-SQL代码中,代码如下: