【问题标题】:Add unique constraint in SQL Server 2008 GUI?在 SQL Server 2008 GUI 中添加唯一约束?
【发布时间】:2015-01-22 20:00:49
【问题描述】:

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

【问题讨论】:

    标签: sql sql-server ssms sql-server-2008


    【解决方案1】:

    您需要在表格设计器中右键单击并选择Indexes/Keys

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

    【讨论】:

    • 这是一个唯一索引,而不是唯一约束。两者都创建索引,但它们之间存在差异(请参阅databases.about.com/od/sqlserver/a/unique.htm)。如果你想要一个 UNIQUE 约束,你应该选择 Type = Unique Key。
    • @guillegr123:是的,你是对的 - 但你也在这里挑剔......最后,两种方法都避免重复,最后,两种方法都会导致SQL Server 中的唯一索引。我更喜欢使用唯一索引,因为它允许我在需要时显式设置某些属性(如填充因子) - 唯一约束不允许我设置。
    【解决方案2】:

    在表格设计器中右击并选择Indexes/Keys

    索引/键窗口将打开。点击按钮Add,创建新的索引/键,并在Columns属性中选择唯一的列:

    在新索引/键的属性中,将 Type 设置为 Unique Key

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

    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
    

    【讨论】:

    • 如果我想使用多个列创建唯一约束,那么我可以将我想要的所有列添加到新索引/键的Columns 属性中吗? (例如 FirstName 和 Surname - 可以有重复但不能重复)?
    • 是的。如果您按下 Columns 属性上的“...”按钮,则会显示一个窗口,您可以在其中选择所需的所有列,并指定该索引中列的顺序。正如您在示例中所说,所有选定列的组合都会考虑到键的唯一性。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      您只需右键单击需要从表中添加唯一键的列,然后可以选择Indexes/Keys。然后您可以添加或删除要设置唯一键的列

      【讨论】:

        猜你喜欢
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-01
        • 1970-01-01
        相关资源
        最近更新 更多