我是SQL Server的新手,我使用的是2012版本。
我有一个具有以下结构的表:
Attendance
--------------
TagID (FK)
SessionID (FK)
ScanningTime
我需要根据两列(TagID
和SessionID
)创建唯一约束
我不知道该怎么做。我创建了一个查询并尝试了这段代码:
ALTER TABLE Attendance ADD CONSTRAINT UNIQUE NONCLUSTERED
(
TagID,
SessionID
)
但是当我尝试执行它时,我收到了这个错误:
Msg 156,Level 15,State 1,Line 2
关键字'UNIQUE'附近的语法不正确。
使用SSMS更改表格的正确方法是什么?我应该每次创建一个查询吗?
答案 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任务,或者复制并粘贴它们。