Как создать составную уникальную константу в SQL Server 2005

Желательно, чтобы я хотел знать, как это сделать, используя интерфейс SQL Server Management Studio, но это не совсем необходимо. Если у вас просто есть script, чтобы добавить его после создания таблицы, это будет нормально.

Ответ 1

В SQL Server Management Studio

  • Перейти к Обозревателю объектов
  • выберите свой стол и откройте его конструктор (не можете вспомнить, как он назывался в 2005 году - Изменить таблицу или как?)
  • в конструкторе таблиц выберите значки "Управление индексами и ключами" на панели инструментов (таблица с небольшим ключом)
  • там, добавьте новый индекс и дайте ему имя, нажмите его "Уникальный" параметр

alt text

  • откройте список столбцов в определении индекса и добавьте столбцы, которые вы хотите разбить в индексе

alt text

Это! :)

Ответ 2

Попробуйте следующее:

ALTER TABLE dbo.YourTableName 
ADD CONSTRAINT
ConstraintName UNIQUE NONCLUSTERED
(
    Column01,
    Column02,
    Column03
)

Я использую бизнес-имена для ограничений, чтобы, если он был нарушен и возникло исключение, я получаю "Только одно нарушение для каждого сотрудника" в своем сообщении об ошибке, а не "Нарушение ConstraintXXX".