Я хочу створити таблиці в SQL Server 2008, але я не знаю, як створити складений первинний ключ. Як я можу цього досягти?
Я хочу створити таблиці в SQL Server 2008, але я не знаю, як створити складений первинний ключ. Як я можу цього досягти?
Відповіді:
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
Для 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> Ключі> ..), але якщо ви не використовуєте обмеження, MSSQL автоматично створює випадкові імена FK / PK. Вам потрібно буде переглянути кожну необхідну вам зміну (таблицю змін).
Я рекомендую встановити для себе стандарт; обмеження слід визначати відповідно до вашого стандарту. Вам не доведеться запам’ятовувати і вам не доведеться думати занадто довго. Словом, ти працюєш швидше.
Спочатку створіть базу даних і таблицю, додавши стовпці вручну. У якому стовпчику бути первинним ключем. Вам слід клацнути правою кнопкою миші цей стовпець і встановити первинний ключ, а також встановити значення початкового ключа.
Для створення складеного унікального ключа на столі
ALTER TABLE [TableName] ADD UNIQUE ([Column1], [Column2], [column3]);
CREATE TABLE UserGroup
(
[User_Id] INT Foreign Key,
[Group_Id] INT foreign key,
PRIMARY KEY ([User_Id], [Group_Id])
)