Как заставить столбец быть уникальным для всей таблицы в SQL Server 2008 R2?

у меня есть таблица с

3 ответов


добавьте уникальный индекс в столбец описание.

использование SQL Server Management Studio щелкните правой кнопкой мыши таблицу и выберите дизайн. Затем щелкните правой кнопкой мыши столбец и выберите "индексы/ключи". Вам будет предложено следующее окно

alt text

нажмите "Добавить" в левом нижнем углу, а затем укажите свойства для своего индекса. Если вы хотите использовать DDL-скрипт, используйте что-то вроде этого

CREATE UNIQUE NONCLUSTERED INDEX [IX_INDEXNAME] ON [dbo].[TABLENAME] 
(
    [Description] ASC
)
WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

нет такой вещи как 'вторичный первичный ключ'. Существует один первичный ключ на таблицу.

создать уникальное ограничение на Description столбец (очень необычная вещь, кстати. Например, более привычно создавать уникальный индекс на Product Name, а не Product description) или если у вас есть значения NULL в


есть другой способ сделать это с помощью SSMS GUI, если вы предпочитаете:

Я заменил Description столбец с именем MyUniqueColumn для примера.

  1. щелкните правой кнопкой мыши " индексы "под таблицей в обозревателе решений SSMS и нажмите" новый индекс..."(Я знаю, что вы хотите создать contstraint, а не Индекс, но это именно то, что ADD CONSTRAINT сценарий SQL делает.

enter image description here

  1. дайте новому индексу имя (например, "UQ_MyUniqueColumn"), отметьте "уникальный" и нажмите "Добавить"..."

enter image description here

  1. Проверьте столбец в следующем окне

enter image description here

  1. нажмите OK в обоих окнах