Как создать уникальное ограничение в SSMS 2012 [дубликат]
этот вопрос уже есть ответ здесь:
Я совершенно новичок в SQL Server, я использую версию 2012.
у меня есть таблица со следующей структурой:
Attendance
--------------
TagID (FK)
SessionID (FK)
ScanningTime
мне нужно создать уникальное ограничение на основе двух столбцов (TagID
и SessionID
)
Я не уверен, как это сделать. Я создал запрос и попробовал этот код:
ALTER TABLE Attendance ADD CONSTRAINT UNIQUE NONCLUSTERED
(
TagID,
SessionID
)
но когда я пытаюсь выполнить его, я получаю эту ошибку:
Msg 156, Уровень 15, Состояние 1, Строка 2
Неверный синтаксис рядом с ключевым словом 'UNIQUE'.
каков правильный способ изменить таблицу с помощью SSMS? Должен ли я создавать запрос каждый раз, когда я хочу это сделать?
2 ответов
Вы были почти там. Если вы используете constraint
ключевое слово вам нужно указать имя.
ALTER TABLE Attendance ADD CONSTRAINT UQ_TagID_SessionID UNIQUE NONCLUSTERED
(
TagID,
SessionID
)
или
ALTER TABLE Attendance ADD UNIQUE NONCLUSTERED
(
TagID,
SessionID
)
также работает, но тогда ограничение автоматически называется
Если вы предпочитаете делать это через GUI, а не через ALTER
операторы, вы также можете щелкнуть правой кнопкой мыши по таблице в Обозревателе объектов, выберите "дизайн", затем щелкните правой кнопкой мыши где-нибудь на пустом фоне и выберите"индексы/ключи". Откроется диалоговое окно, в котором вы выберете "уникальный ключ" в качестве типа.
внесение изменений через GUI-это быстрый способ действий, которые вы, как правило, делаете редко и, следовательно, не уверены в синтаксисе.
многие диалоговые окна Management Studio - но не этот, вероятно, так же, как это под диалог диалогового окна конструктора таблиц - есть кнопка "скрипт" в левом верхнем углу, которая записывает действие, которое вы настраиваете через GUI в окно запроса, чтобы вы могли сохранить их для будущих задач similr или acopy и вставить их, если вам нужны подобные действия.