更新:2007 年 11 月
在 SQL Server 中,可以在唯一列(例如 employee id)或共同唯一标识每一记录的一组列(例如 author + title)上创建唯一索引。
例如,如果计划频繁查询 employee 表(其中主键为 emp_id)中的身份证号码 (ssn) 列,并且希望确保身份证号码是唯一的,则可对 ssn 创建唯一索引。如果用户为多个雇员输入相同的身份证号码,数据库会显示错误且无法保存该表。有关唯一索引的更多信息,请参见 Microsoft 网站上的“唯一索引设计指南”。
当创建或修改唯一索引时,可设置一个忽略重复键的选项。如果将此选项设置为“是”,且尝试通过添加(使用 INSERT 语句)影响多行的数据来创建重复键,将不会添加包含重复项的行。如果将此选项设置为“否”,则整个操作将失败,且所有数据都会回滚。
![]() |
---|
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 |
创建唯一索引
在服务器资源管理器中选择要打开的数据库表。
从“数据库”菜单中单击“打开表定义”。
该表在“表设计器”中打开。
从“表设计器”菜单中单击“索引/键”。
单击“添加”。“选定的主/唯一键或索引”列表将显示新索引的系统分配名称。
在网格中单击“类型”。
从属性右侧的下拉列表中选择“索引”。
在“列名”之下选择要进行索引的列。最多可选择 16 列。为获得最佳性能,每个索引仅选择一列或两列。对于所选的每一列,指出索引以升序还是降序排列该列的值。
在网格中单击“是唯一的”。
从属性右侧的下拉列表中选择“是”。
如果希望忽略会在索引中创建重复键(用 INSERT 或 UPDATE 语句)的新数据或更新数据,请选择“忽略重复键”选项。
保存表或关系图时将在数据库中创建该索引。
![]() |
---|
如果单列在多行中包含 NULL,则无法在此单列上创建唯一索引。同样,如果列的组合在多行中包含 NULL,则无法在多个列上创建唯一索引。在进行索引时,它们被视为重复值。 |
![]() |
---|
并不是所有的数据库都以相同的方式使用索引。有关更多信息,请参见数据库文档。 |