Подтвердить что ты не робот

Как создать уникальное ограничение для моего столбца (SQL Server 2008 R2)?

У меня есть SQL Server 2008 R2, и я хочу установить уникальный столбец.

Кажется, есть два способа сделать это: "уникальный индекс" и "уникальное ограничение". Они не сильно отличаются от того, что я понимаю, хотя большинство ограничений рекомендуется для большинства, потому что вы также получаете индекс автоматически.

Как создать уникальное ограничение?

ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name)

Есть ли способ создать уникальное ограничение через SQL Server Management Studio?

4b9b3361

Ответ 1

Чтобы создать эти ограничения через графический интерфейс, вам нужен диалог "индексы и ключи", а не контрольные ограничения.

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

Ответ 2

Установить столбец как уникальный в SQL Server из графического интерфейса пользователя:

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

Перед началом работы убедитесь, что столбец не нарушает уникальное ограничение.

  • Откройте SQL Server Management Studio.
  • Щелкните правой кнопкой мыши свою таблицу, нажмите "Дизайн".
  • Щелкните правой кнопкой мыши на столбце, который вы хотите изменить, появится всплывающее меню, нажмите "Индексы/клавиши".
  • Нажмите кнопку "Добавить".
  • Разверните вкладку "Общие".
  • Убедитесь, что у вас есть столбец, который вы хотите сделать уникальным, выбранным в поле "столбцы".
  • Измените поле "Тип" на "Уникальный ключ".
  • Нажмите "Закрыть".
  • Вы видите небольшую звездочку в окне файла, это означает, что изменения еще не сохранены.
  • Нажмите "Сохранить" или нажмите Ctrl + s. Он должен сохранять, и ваша колонка должна быть уникальной.

Или установите столбец как уникальный из окна SQL Query:

alter table location_key drop constraint pinky;
alter table your_table add constraint pinky unique(yourcolumn);

Изменения вступают в силу немедленно:

Command(s) completed successfully.

Ответ 3

Вы уверены, что столбец в настоящее время уникален? Вы можете это выяснить:

select name,count(*)
  from customer
 group by name
having count(*) > 1

Это даст вам любые дубликаты.

Ответ 4

Здесь другой путь через графический интерфейс, который делает именно то, что делает ваш script, даже если он проходит через Indexes (not Constraints) в проводнике объектов.

  • Щелкните правой кнопкой мыши на "Индексы" и нажмите "Новый индекс..." (обратите внимание: это отключено, если таблица открыта в режиме просмотра)

введите описание изображения здесь

  1. Дайте новый индекс имени ( "U_Name" ), отметьте "Уникальный", и нажмите "Добавить..."

введите описание изображения здесь

  1. Выберите столбец "Имя" в следующем окне

введите описание изображения здесь

  1. Нажмите ОК в обоих окнах