Как добавить ограничение в SQL Server 2008 с помощью диалога ограничений? - PullRequest
3 голосов
/ 15 февраля 2011

Как вручную определить ограничение в диалоговом окне SQL Server 2008?Я хочу добавить ограничение, что при добавлении новой записи, если она уже есть, не добавляйте ее.Моя таблица структурирована таким образом, что

AdvCatJoinID - это мой первичный ключ, CatID - это ключ из таблицы Category, а AliasID - это первичный ключ из таблицы псевдонимов. Я хочу установить ограничениебыть так, что если CatID и AliasID уже существуют в таблице как пара, то не добавляйте новую запись (как она уже существует), как?

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 февраля 2011

Шаг 1:

В обозревателе объектов SQL Server найдите базу данных и таблицу, на которую вы хотите наложить ограничение, и перейдите к подузлу Indexes, затем щелкните правой кнопкой мыши, выберите New Index:

enter image description here

Шаг 2:

В появившемся диалоговом окне укажите свой уникальный индекс:

  • дайте ему имя по вашему выбору
  • убедитесь, что флажок [ X ] Unique установлен
  • дважды нажмите кнопку [ Add ], чтобы добавить две колонки в индекс

enter image description here

Когда вы сделали эти два шага, у вас теперь есть уникальный индекс для комбинации (CatID, AliasID), и никакая пара этих двух значений не может существовать более одного раза в вашей таблице.

2 голосов
/ 15 февраля 2011

Вам действительно нужен столбец AdvCatJoinID? Обычно для этих таблиц ассоциаций у меня просто есть составной первичный ключ на 2 столбца внешнего ключа. Это усиливает уникальный аспект.

В противном случае, чтобы сделать это в SSMS, вам нужно пройти через диалог «Индексы / ключи» (НЕ с ограничениями) и настроить новый уникальный индекс с обоими выбранными столбцами. Вы получаете доступ к этому диалоговому окну после того, как щелкните правой кнопкой мыши таблицу и выберите «Дизайн», затем щелкните правой кнопкой мыши сетку конструктора таблицы.

Чтобы создать уникальное ограничение, а не уникальный индекс, вы должны выбрать опцию «Уникальный ключ», но между ними нет практической разницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...