Как создать столбец "Нет дубликатов" в SQL Server 2008?
У меня есть простая таблица в моей базе данных SQL Server. Эта таблица содержит два столбца: ID int, Name nvarchar(50)
. Столбец ID
является основным ключом для моей таблицы.
Я хочу, чтобы столбец "Name
" был "(No Duplicates)
", как в Microsoft Access, но этот столбец не является основным столбцом. Как я могу это сделать?
Ответы
Ответ 1
Добавьте уникальное ограничение для этого столбца:
ALTER TABLE Foo ADD CONSTRAINT UQ_Name UNIQUE (Name)
Чтобы добавить его через интерфейс SQL Management Studio:
- Откройте SQL Server Management Studio.
- Разверните папку "Таблицы" базы данных, в которой вы хотите создать ограничение.
- Щелкните правой кнопкой мыши таблицу, в которую вы хотите добавить ограничение, и нажмите "Дизайн".
- В конструкторе таблиц нажмите "Индексы/ключи".
- Нажмите "Добавить".
- Выберите "Уникальный ключ" в раскрывающемся списке "Тип".
Чтобы справиться с ситуацией, когда происходит нарушение уникального ограничения, см. ошибка 2601.
Ответ 2
Это также можно сделать другим способом с помощью GUI SSMS, если вы предпочитаете:
- Щелкните правой кнопкой мыши "Индексы" под вашей таблицей в обозревателе решений SSMS и выберите "Новый индекс..." (я знаю, что вы хотите создать contstraint, а не индекс, но это именно то, что
ADD CONSTRAINT
SQL script делает.
![введите описание изображения здесь]()
- Дайте новый индекс имени (например, "UQ_MyUniqueColumn" ), отметьте "Уникальный" и нажмите "Добавить..."
![введите описание изображения здесь]()
- Проверьте свой столбец в следующем окне
![введите описание изображения здесь]()
- Нажмите ОК в обоих окнах
Ответ 3
Вы ищете УНИКАЛЬНОЕ ограничение.