是否在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属性上的“…”按钮,将显示一个窗口,您可以在该窗口中选择所需的所有列,还可以指定该列在该索引中的顺序。并且,正如您在示例中所说的,为确保键的唯一性,将考虑所有选定列的组合。