2013-08-14 2 views
8

Я совершенно новой для SQL Server, я использую версию 2012Как создать UNIQUE ограничение в SSMS 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
Incorrect syntax near the keyword 'UNIQUE'.

Что такое правильный способ изменить таблицу с помощью SSMS? Должен ли я создавать запрос каждый раз, когда я хочу это сделать?

ответ

9

Вы были почти там. Если вы используете ключевое слово constraint, вам необходимо указать имя.

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

Или же

ALTER TABLE Attendance ADD UNIQUE NONCLUSTERED 
(
    TagID, 
    SessionID 
) 

также работает, но тогда ограничение авто имени

+0

Спасибо, не могли бы вы также ответить на мой вопрос жирным шрифтом? – jaspernorth

+0

Я бы настоятельно предложил ограничить именами - первый вариант. –

+0

@jaspernorth - RE: Ваш смелый вопрос, как правило, следует избегать конструктора и использовать TSQL, но это также можно сделать визуально в SSMS через диалог [индексы и ключи] (http://technet.microsoft.com/) ан-нас/библиотека/ms187019.aspx). –

4

Если вы предпочитаете делать это с помощью графического интерфейса пользователя, а не через ALTER заявления, вы можете щелкнуть правой кнопкой мыши на таблицу в Обозревателе объектов, выберите «Дизайн», затем щелкните правой кнопкой мыши где-нибудь на пустом фоне и выберите «Индексы/Ключи». Откроется диалоговое окном, в котором можно выбрать «» Уникальный ключ»в качестве типа.

Делать изменения с помощью графического интерфейса пользователя является быстрым способом для действий, которые вы склонны делать редко и, следовательно, не уверены о синтаксисе.

Многого Диалоги Studio Management - но не этот, возможно, поскольку он является дополнительным диалоговым окном диалогового окна конструктора таблиц - есть кнопка «Сценарий» в левом верхнем углу, которая записывает действие, которое вы настраиваете с помощью графического интерфейса в окно запроса, чтобы вы могли сохраните их для будущих задач similr или acopy и вставьте их, если вам понадобятся подобные действия.

+0

Это очень полезно. Спасибо, что сэр! – jaspernorth

+1

После закрытия этого диалога ограничение создается не мгновенно, а только при сохранении/закрытии конструктора таблиц. Поэтому вы можете щелкнуть правой кнопкой мыши на пустом фоне и выбрать опцию «Создать сценарий изменения ...». –

Смежные вопросы