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

163

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

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

mrblah
источник

Ответы:

356

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

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

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

Gratzy
источник
7

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

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

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

Вы сделали ..

:-)

user4878037
источник
5

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

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

KM.
источник
4
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO
Tejas
источник