如何:创建唯一索引

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

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

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

备注

为 SQL Server 2012 格式的数据库提供了一个新版本的表设计器。本主题介绍表设计器的旧版本,可将其与 SQL Server 早期格式的数据库配合使用。

在新版本中,可通过图形界面或直接在脚本窗格中更改表定义。如果使用图形界面,表定义将在脚本窗格中自动更新。若要在脚本窗格中应用 SQL 代码,请选择“更新”按钮。有关新版本的详细信息,请参阅如何使用表设计器创建数据库对象

备注

以下说明中的某些 Visual Studio 用户界面元素在您计算机上的名称或显示位置可能有所不同。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关详细信息,请参阅 Visual Studio 设置

创建唯一索引

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

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

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

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

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

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

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

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

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

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

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

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

备注

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

备注

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

请参见

参考

“索引/键”对话框

其他资源

使用索引

使用键