Как создать составной первичный ключ в SQL Server 2008
Я хочу создавать таблицы в SQL Server 2008, но я не знаю, как создать составной первичный ключ. Как мне этого добиться?
9 ответов
create table my_table (
column_a integer not null,
column_b integer not null,
column_c varchar(50),
primary key (column_a, column_b)
);
CREATE TABLE UserGroup
(
[User_Id] INT NOT NULL,
[Group_Id] INT NOT NULL
CONSTRAINT PK_UserGroup PRIMARY KEY NONCLUSTERED ([User_Id], [Group_Id])
)
Через Enterprise Manager (SSMS)...
- Щелкните правой кнопкой мыши таблицу, на которой вы хотите создать составной ключ, и выберите " Дизайн".
- Выделите столбцы, которые вы хотите сформировать как составной ключ
- Щелкните правой кнопкой мыши по этим столбцам и установите первичный ключ.
Чтобы увидеть SQL, вы можете затем щелкнуть правой кнопкой мыши на Table
> Script Table As
> Create To
Я знаю, что опоздал на эту вечеринку, но для существующего стола, попробуйте:
ALTER table TABLE_NAME
ADD CONSTRAINT [name of your PK, e.g. PK_TableName] PRIMARY KEY CLUSTERED (column1, column2, etc.)
Для 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)
)
ОБНОВИТЬ
Я должен добавить!
Если вы хотите, чтобы эти внешние / первичные ключи изменились, сначала вы должны создать с ограничением, или вы не можете вносить изменения. Как это ниже;
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. Вам нужно будет просмотреть каждое изменение (таблица изменений), которое вам нужно.
Я рекомендую вам установить стандарт для себя, и ограничение должно быть определено в соответствии с вашим стандартом. Вам не нужно будет запоминать, и вам не придется слишком долго думать. Короче, ты работаешь быстрее.
Сначала создайте базу данных и таблицу, вручную добавив столбцы. В каком столбце должен быть первичный ключ. Вы должны щелкнуть правой кнопкой мыши по этому столбцу и установить первичный ключ и установить начальное значение первичного ключа.
Вы можете создать составной первичный ключ при создании таблицы. Если вы уже создали таблицу, вы можете использовать команду ALTER для создания составного первичного ключа. Но для этого нужно соблюдать некоторые условия. Пожалуйста, посетите это видео для получения более подробной информации:
CREATE TABLE UserGroup
(
[User_Id] INT Foreign Key,
[Group_Id] INT foreign key,
PRIMARY KEY ([User_Id], [Group_Id])
)
Создать составной уникальный ключ на столе
ALTER TABLE [TableName] ADD UNIQUE ([Column1], [Column2], [column3]);