Как создать уникальное ограничение для столбца (SQL Server 2008 R2)?
У меня есть SQL Server 2008 R2, и я хочу установить уникальный столбец.
существует два способа сделать это:" уникальный индекс "и"уникальное ограничение". Они не сильно отличаются от того, что я понимаю, хотя уникальности рекомендуется, потому что вы также получите автоматически в индекс.
Как создать уникальное ограничение?
ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name)
есть ли способ создать уникальное ограничение через среду SQL Server Management Studio?
4 ответов
чтобы создать эти ограничения через GUI, вам нужен диалог" индексы и ключи", а не ограничения проверки.
но в вашем случае вам просто нужно запустить фрагмент кода, который у вас уже есть. Его вообще не нужно вводить в диалог выражения.
установить столбец как уникальный в SQL Server из GUI:
они действительно заставляют вас бегать по сараю, чтобы сделать это с GUI:
перед началом работы убедитесь, что столбец не нарушает уникальное ограничение.
- откройте SQL Server Management Studio.
- щелкните правой кнопкой мыши таблицу, нажмите "дизайн".
- щелкните правой кнопкой мыши столбец, который вы хотите изменить, появится всплывающее меню, нажмите индексы / ключи.
- нажать кнопку "Добавить" Кнопка.
- разверните вкладку "Общие".
- убедитесь, что столбец, который вы хотите сделать уникальным, выбран в поле "столбцы".
- измените поле" Тип "на"уникальный ключ".
- Нажмите Кнопку "Закрыть".
- вы видите маленькую звездочку в окне файл, это означает, что изменения еще не сохранены.
- нажмите Сохранить или нажмите Ctrl+s. Он должен сохранять, и ваша колонка должна быть уникальной.
или установите столбец как уникальный из Окно SQL-запроса:
alter table location_key drop constraint pinky;
alter table your_table add constraint pinky unique(yourcolumn);
изменения вступают в силу немедленно:
Command(s) completed successfully.
вот еще один способ через GUI, который делает именно то, что делает ваш скрипт, даже если он проходит через индексы (а не ограничения) в обозревателе объектов.
- щелкните правой кнопкой мыши на " индексы "и нажмите" новый индекс..."(Примечание: это отключено, если таблица открыта в режиме конструктора)
- дайте новому индексу имя ("U_Name"), проверьте " Unique", и нажмите "Добавлять..."
- выберите столбец " имя " в следующем окне
- нажмите OK в обоих окнах
одно не ясно рассказывается, что Microsoft SQL-это создание на фоне уникального индекса по добавленным ограничением
create table Customer ( id int primary key identity (1,1) , name nvarchar(128) )
--Commands completed successfully.
sp_help Customer
---> index
--index_name index_description index_keys
--PK__Customer__3213E83FCC4A1DFA clustered, unique, primary key located on PRIMARY id
---> constraint
--constraint_type constraint_name delete_action update_action status_enabled status_for_replication constraint_keys
--PRIMARY KEY (clustered) PK__Customer__3213E83FCC4A1DFA (n/a) (n/a) (n/a) (n/a) id
---- now adding the unique constraint
ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name)
-- Commands completed successfully.
sp_help Customer
---> index
---index_name index_description index_keys
---PK__Customer__3213E83FCC4A1DFA clustered, unique, primary key located on PRIMARY id
---U_Name nonclustered, unique, unique key located on PRIMARY name
---> constraint
---constraint_type constraint_name delete_action update_action status_enabled status_for_replication constraint_keys
---PRIMARY KEY (clustered) PK__Customer__3213E83FCC4A1DFA (n/a) (n/a) (n/a) (n/a) id
---UNIQUE (non-clustered) U_Name (n/a) (n/a) (n/a) (n/a) name
Как вы можете видеть , есть новое ограничение и новый индекс U_Name