是否在SQL Server 2008 GUI中添加唯一约束?

是否在SQL Server 2008 GUI中添加唯一约束?,sql,sql-server,ssms,sql-server-2008,Sql,Sql Server,Ssms,Sql Server 2008,我有一个包含数据的现有表。我刚刚添加了一个新列,但找不到如何在该列上添加唯一约束。有人能给点建议吗?右键单击并选择“检查约束”没有帮助。尝试右键单击并选择索引/键,添加一个新索引,并将设置为“是”。您需要在表设计器中右键单击并选择索引/键: 然后弹出一个对话框,您可以向索引列表(左侧)添加一个新索引,并将其定义为唯一的索引: 在表设计器中单击鼠标右键,然后选择“索引/键” “索引/键”窗口将打开。单击按钮添加,以创建新索引/键,并在列属性中选择要唯一的列: 在新索引/键的属性中,将类型设置

我有一个包含数据的现有表。我刚刚添加了一个新列,但找不到如何在该列上添加唯一约束。有人能给点建议吗?右键单击并选择“检查约束”没有帮助。

尝试右键单击并选择
索引/键
,添加一个新索引,并将
设置为“是”。

您需要在表设计器中右键单击并选择
索引/键

然后弹出一个对话框,您可以向索引列表(左侧)添加一个新索引,并将其定义为
唯一的
索引:


在表设计器中单击鼠标右键,然后选择“索引/键”

“索引/键”窗口将打开。单击按钮添加,以创建新索引/键,并在属性中选择要唯一的列:

在新索引/键的属性中,将类型设置为唯一键

这是为唯一约束生成的代码:

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

只需右键单击需要从表中添加唯一键的列,就可以选择
索引/键
。然后,您可以添加或删除要设置唯一键的列,该列是唯一索引,而不是唯一约束。两者都创建索引,但它们之间存在差异(请参阅)。如果你想要一个唯一的约束,你应该选择Type=UNIQUE Key。@guillegr123:是的,你是对的,但是你也在这里挑剔。。。。。最后,这两种方法都避免了重复,最后,这两种方法都将在SQL Server中生成唯一的索引。我更喜欢使用唯一索引,因为它允许我在需要时显式地设置某些属性(如填充因子)——唯一约束不允许我设置这些属性。如果我想使用多个列创建唯一约束,那么我可以将我想要的所有列添加到新索引/键的
属性中?(例如名字和姓氏-可以各有一个副本,但不能两者都有)?是。如果按Columns属性上的“…”按钮,将显示一个窗口,您可以在该窗口中选择所需的所有列,还可以指定该列在该索引中的顺序。并且,正如您在示例中所说的,为确保键的唯一性,将考虑所有选定列的组合。