2012-11-30 142 views

回答

53

你需要右键单击并选择Indexes/Keys

enter image description here

然后弹出一个对话框,你可以添加一个新的指数,以指数的列表(在左侧),并把它定义为一个unique指数:

enter image description here

+13

这是一个唯一的索引,而不是唯一的约束。两者都创建索引,但它们之间存在差异(请参阅http://databases.about.com/od/sqlserver/a/unique.htm)。如果你想要一个UNIQUE约束,你应该选择Type = Unique Key。 –

+1

@ guillegr123:是的,你是对的 - 但你也在这里挑剔......最后,这两种方法都避免了重复,最后,这两种方法都会在SQL Server中产生一个唯一的索引。我更喜欢使用唯一索引,因为它允许我明确地设置某些属性(如填充因子)(如果需要) - 哪些是唯一约束不允许设置的。 –

4

尝试右键单击并选择Indexes/Keys,添加新索引并将Is Unique设置为是。在表设计

30

表中的设计师,就单击鼠标右键,然后选择索引/键

enter image description here

索引/键窗口将打开。单击按钮添加,创建新的索引/键,选择列是在性能独特:

enter image description here

在新的索引/键的属性,设置键入唯一密钥

enter image description here

这是对的uniq生成的代码UE约束:

ALTER TABLE [dbo].[Table_1] ADD CONSTRAINT [IX_Table_1] UNIQUE NONCLUSTERED 
(
    [myUniqueColumn] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
GO 
+1

如果我想使用几列创建一个唯一约束,那么我可以将所有我想要的列添加到新索引/键的'Columns'属性中? (例如名字和姓氏 - 可以重复但不是两者都重复)? – Ben

+2

是的。如果按Columns属性上的“...”按钮,则会显示一个窗口,您可以在其中选择所需的所有列,还可以指定该索引中列的顺序。并且所有选定列的组合都将考虑到密钥的唯一性,如您在示例中所述。 –

0

你从哪个列,您需要从表中添加独特的键,你可以选择Indexes/Keys只要右击。然后你可以添加或删除你想设置唯一密钥的列