40

我的 SQL Server 数据库中有一个简单的表。此表包含两列:ID int, Name nvarchar(50)。该ID列是我的表的主键。

我希望“ Name”列是“ (No Duplicates)”,就像在 Microsoft Access 中一样,但此列不是主列。我怎么能这样做?

4

3 回答 3

94

为该列添加唯一约束:

ALTER TABLE Foo ADD CONSTRAINT UQ_Name UNIQUE (Name)

要通过 SQL Management Studio UI 添加它:

  1. 打开 SQL Server 管理工作室。
  2. 展开要在其中创建约束的数据库的Tables文件夹。
  3. 右键单击要添加约束的表,然后单击Design
  4. 在表设计器中,单击Indexes/Keys
  5. 单击添加
  6. 在类型下拉列表中选择唯一键。

要处理发生唯一约束违规的情况,请参阅错误 2601

于 2009-10-19T14:28:48.833 回答
8

如果您愿意,也可以使用 SSMS GUI 以另一种方式完成此操作:

  1. 在 SSMS 解决方案资源管理器中右键单击表下的“索引”,然后单击“新建索引...”(我知道您正在寻找创建约束,而不是索引,但这正是ADD CONSTRAINTSQL 脚本所做的。

在此处输入图像描述

  1. 为新索引命名(例如“UQ_MyUniqueColumn”),选中“Unique”,然后单击“Add...”

在此处输入图像描述

  1. 在下一个窗口中检查您的列

在此处输入图像描述

  1. 在两个窗口中单击确定
于 2015-12-17T19:57:59.843 回答
6

您正在寻找UNIQUE 约束

于 2009-10-19T14:28:50.533 回答