如何在SSMS 2012中创建UNIQUE约束

时间:2013-08-14 14:10:29

标签: sql sql-server database sql-server-2012 ssms

我是SQL Server的新手,我使用的是2012版本。

我有一个具有以下结构的表:

Attendance
--------------
TagID     (FK)
SessionID (FK)       
ScanningTime

我需要根据两列(TagIDSessionID)创建唯一约束

我不知道该怎么做。我创建了一个查询并尝试了这段代码:

ALTER TABLE Attendance ADD CONSTRAINT UNIQUE NONCLUSTERED
(
    TagID,
    SessionID
)

但是当我尝试执行它时,我收到了这个错误:

  

Msg 156,Level 15,State 1,Line 2
  关键字'UNIQUE'附近的语法不正确。

使用SSMS更改表格的正确方法是什么?我应该每次创建一个查询吗?

2 个答案:

答案 0 :(得分:10)

你快到了。如果您使用constraint关键字,则需要提供名称。

ALTER TABLE Attendance ADD CONSTRAINT UQ_TagID_SessionID UNIQUE NONCLUSTERED
(
    TagID,
    SessionID
)

或者

ALTER TABLE Attendance ADD UNIQUE NONCLUSTERED
(
    TagID,
    SessionID
)

也有效,但约束是自动命名的

答案 1 :(得分:7)

如果您更喜欢通过GUI而不是通过ALTER语句来执行此操作,您还可以右键单击对象资源管理器中的表,选择“设计”,然后右键单击空白背景上的某个位置,选择“索引/键”。这将打开一个对话框,您可以选择“”唯一键“作为类型。

通过GUI进行更改是您很少采取的操作的快速方法,因此无法确定语法。

许多Management Studio对话框 - 但不是这个,可能因为它是表设计器对话框的子对话框 - 左上角有一个“脚本”按钮,它将您通过GUI配置的操作写入查询窗口如果你需要类似的动作,你可以保存它们以备将来的similr任务,或者复制并粘贴它们。