Как сделать составной ключ с SQL Server Management Studio?


163

Как сделать составной ключ с SQL Server Management Studio?

Я хочу, чтобы два столбца INT сформировали идентичность (уникальную) для таблицы

Ответы:


356

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

  1. Откройте вкладку таблицы дизайна
  2. Выделите два поля INT (Ctrl / Shift + клик по серым блокам в самом первом столбце)
  3. Щелкните правой кнопкой мыши -> Установить первичный ключ

4
Чтобы выделить несколько полей, щелкните блоки перед столбцами «имя столбца» и «тип данных» и т. Д. Ctrl / Shift + Нажатие на поля имени столбца фактически ничего не изменит.
Пимгд

3
Так что, если один - строка, а другой - int, это невозможно? Кажется, что нет ...
Б. Клэй Шеннон

3
Я бы понизил это, но потом понял, что ОП специально спросил, как это сделать в SSMS. Вы всегда должны записывать изменения базы данных +, если вы используете такие инструменты, вы никогда не научитесь делать изменения для себя
JonnyRaa

2
@JonnyLeeds, там очень высокая лошадь. Что не так с GUI, если это то, что люди предпочитают?
leinad13

4
@ leinad13 Должно быть, у меня был плохой день! Но главная проблема заключается в том, что они не повторяются, и, как правило, это означает, что люди вносят неконтролируемые специальные изменения и настройки, чтобы исправить проблемы с базой данных / схемой. Это очень плохой признак - они недокументированы (например, из-за наличия кода для исправления, записанного и проверенного в системе контроля версий и / или наличия инструмента, который автоматически применяет правильные изменения к любой версии базы данных), и если у вас более одной установка, тогда у вас серьезные проблемы, так как скоро базы данных не будут иметь ту же схему
JonnyRaa

63

Вот код для этого:

-- Sample Table
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO

-- Add Constraint
ALTER TABLE myTable
    ADD CONSTRAINT pk_myConstraint PRIMARY KEY (Column1,Column2)
GO

Я добавил ограничение в качестве отдельного оператора, поскольку я предполагаю, что ваша таблица уже создана.


Я думаю, этот ответ подходит, так как вы можете запустить его в окне запросов SSMS ...;)
dance2die

2
Сценарии FTW, и для явного именования! Внешние ADD PRIMARY KEYи внутренние PRIMARY KEYопределения будут давать случайные имена клавишам, что может причинять боль при расчете фигуре, которая принадлежит вам, если у вас нет таблиц db chart +.
Daevin

35
create table my_table (
    id_part1 int not null,
    id_part2 int not null,
    primary key (id_part1, id_part2)
)

14

В режиме конструктора (щелчок правой кнопкой мыши по таблице выберите изменить) выделите оба столбца правой кнопкой мыши и выберите «Установить первичный ключ».


7

Откройте конструктор таблиц в SQL Server Management Studio (щелкните правой кнопкой мыши таблицу и выберите «Дизайн»)

Удерживая нажатой клавишу Ctrl, выделите два или более столбца на левом поле таблицы.

Нажмите маленькую кнопку «Ключ» на стандартной строке меню вверху

Вы сделали ..

:-)


5

Выделите обе строки в представлении дизайна таблицы и щелкните значок ключа, теперь они будут составным первичным ключом.

Я не уверен в вашем вопросе, но только один столбец в таблице может быть столбцом IDENTITY, а не обоими.


4
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.