如何:创建唯一索引

在 SQL Server 中,可以在唯一列(例如 employee id)或共同唯一标识每一记录的一组列(例如 author + title)上创建唯一索引。

例如,如果计划频繁查询 employee 表(其中主键为 emp_id)中的身份证号码 (ssn) 列,并且希望确保身份证号码是唯一的,则可对 ssn 创建唯一索引。 如果用户为多个雇员输入相同的身份证号码,数据库会显示错误且无法保存该表。 有关唯一索引的更多信息,请参见 Microsoft 网站上的“唯一索引设计指南”。

当创建或修改唯一索引时,可设置一个忽略重复键的选项。 如果将此选项设置为**“是”,且尝试通过添加(使用 INSERT 语句)影响多行的数据来创建重复键,将不会添加包含重复项的行。 如果将此选项设置为“否”**,则整个操作将失败,且所有数据都会回滚。

提示

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。 若要更改设置,请在“工具”菜单上选择“导入和导出设置”。 有关更多信息,请参见 使用设置

创建唯一索引

  1. 在服务器资源管理器中选择要打开的数据库表。

  2. 从**“数据库”菜单中单击“打开表定义”**。

    该表在**“表设计器”**中打开。

  3. 从**“表设计器”菜单中单击“索引/键”**。

  4. 单击**“添加”**。 **“选定的主/唯一键或索引”**列表将显示新索引的系统分配名称。

  5. 在网格中单击**“类型”**。

  6. 从属性右侧的下拉列表中选择**“索引”**。

  7. 在**“列名”**之下选择要进行索引的列。 最多可选择 16 列。 为获得最佳性能,每个索引仅选择一列或两列。 对于所选的每一列,指出索引以升序还是降序排列该列的值。

  8. 在网格中单击**“是唯一的”**。

  9. 从属性右侧的下拉列表中选择**“是”**。

  10. 如果希望忽略会在索引中创建重复键(用 INSERT 或 UPDATE 语句)的新数据或更新数据,请选择**“忽略重复键”**选项。

保存表或关系图时将在数据库中创建该索引。

提示

如果单列在多行中包含 NULL,则无法在此单列上创建唯一索引。 同样,如果列的组合在多行中包含 NULL,则无法在多个列上创建唯一索引。 在进行索引时,它们被视为重复值。

提示

并不是所有的数据库都以相同的方式使用索引。 有关更多信息,请参见数据库文档。

请参见

参考

“索引/键”对话框

其他资源

使用索引

使用键