在 Microsoft SQL Server 中,可以对唯一列(如 employee id )或一起唯一标识每条记录的一组列(如 author + title )创建唯一索引。
例如,如果计划频繁查询
employee
表中(其中主键为
emp
_
id
)的身份证号码 (
ssn
) 列,并希望确保身份证号码是唯一的,则可以在
ssn
上创建唯一索引。如果用户为一个以上的雇员输入相同的身份证号码,则数据库将显示错误而且无法保存该表。
在创建或修改唯一索引时,可以可设置一个忽略重复键的选项。如果此选项已设置为 “是” ,当您试图通过添加影响多行的数据来创建重复键(使用 INSERT 语句)时,则不会添加包含重复项的行;如果此选项设置为 “否” ,则整个插入操作将失败,并且将回滚所有数据。
-
在对象资源管理器中,右键单击表,再单击 “设计” 。
此时,将在表设计器中打开该表。
-
在 表设计器 菜单上,单击 “索引/键” 。
-
单击 “添加” 。 “选定的主/唯一键或索引” 列表将显示新索引的系统分配名称。
-
在网格中,单击 “类型” 。
-
从属性右侧的下拉列表中选择 “索引” 。
-
在 “列” 下,选择要编制索引的列。最多可选择 16 列。为获得最佳的性能,请只为每个索引选择一列或两列。对于所选的每一列,指定索引是以升序还是以降序来排列此列的值。
-
在网格中,单击 “是唯一的” 。
-
从属性右侧的下拉列表中选择 “是” 。
-
如果希望忽略会在唯一索引中创建重复键(用 INSERT 语句)的数据,请选择 “忽略重复键” 选项并选择 “是” 。
在保存表或关系图时将在数据库中创建该索引。
注意: |
---|
如果单个列在多行中包含 NULL,则无法对该列创建唯一索引。同样,如果列的组合在多行中包含 NULL,则无法对多个列创建唯一索引。在进行索引时,它们都被视为重复值。 |