Как создать составной первичный ключ в SQL Server 2008 - PullRequest
152 голосов
/ 13 октября 2010

Я хочу создать таблицы в SQL Server 2008, но я не знаю, как создать составной первичный ключ.Как мне этого добиться?

Ответы [ 8 ]

222 голосов
/ 13 октября 2010
create table my_table (
     column_a integer not null,
     column_b integer not null,
     column_c varchar(50),
     primary key (column_a, column_b)
);
154 голосов
/ 13 октября 2010
CREATE TABLE UserGroup
(
  [User_Id] INT NOT NULL,
  [Group_Id] INT NOT NULL

  CONSTRAINT PK_UserGroup PRIMARY KEY NONCLUSTERED ([User_Id], [Group_Id])
)
45 голосов
/ 13 октября 2010

Через Enterprise Manager (SSMS) ...

  • Щелкните правой кнопкой мыши таблицу, для которой вы хотите создать составной ключ, и выберите Дизайн .
  • Выделите столбцы, которые вы хотите сформировать, в виде составного ключа.
  • Щелкните правой кнопкой мыши по этим столбцам и Установите первичный ключ

Чтобы просмотретьSQL вы можете затем щелкнуть правой кнопкой мыши на Table> Script Table As> Create To

24 голосов
/ 20 июля 2016

Я знаю, что опоздал на эту вечеринку, но для существующего стола попробуйте:

ALTER table TABLE_NAME
ADD CONSTRAINT [name of your PK, e.g. PK_TableName] PRIMARY KEY CLUSTERED (column1, column2, etc.)
21 голосов
/ 16 декабря 2016

Для MSSQL Server 2012

CREATE TABLE usrgroup(
  usr_id int FOREIGN KEY REFERENCES users(id),
  grp_id int FOREIGN KEY REFERENCES groups(id),

  PRIMARY KEY (usr_id, grp_id)
)

UPDATE

Я должен добавить!

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

CREATE TABLE usrgroup(
  usr_id int,
  grp_id int,

  CONSTRAINT FK_usrgroup_usrid FOREIGN KEY (usr_id) REFERENCES users(id),
  CONSTRAINT FK_usrgroup_groupid FOREIGN KEY (grp_id) REFERENCES groups(id),

  CONSTRAINT PK_usrgroup PRIMARY KEY (usr_id,grp_id)
)

На самом деле последний путь более здоровый и последовательный. Вы можете посмотреть имена ограничений FK / PK (dbo.dbname> Keys> ..) , но если вы не используете ограничение, MSSQL автоматически создает случайные имена FK / PK. Вам нужно будет просмотреть каждое изменение (таблица изменений), которое вам нужно.

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

1 голос
/ 28 августа 2012

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

0 голосов
/ 08 октября 2016
CREATE TABLE UserGroup
(
  [User_Id] INT Foreign Key,
  [Group_Id] INT foreign key,

 PRIMARY KEY ([User_Id], [Group_Id])
)
0 голосов
/ 01 июня 2016

Для создания составного уникального ключа на таблице

ALTER TABLE [TableName] ADD UNIQUE ([Column1], [Column2], [column3]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...