Saya ingin membuat tabel di SQL Server 2008, tapi saya tidak tahu cara membuat kunci primer komposit. Bagaimana saya bisa mencapai ini?
Saya ingin membuat tabel di SQL Server 2008, tapi saya tidak tahu cara membuat kunci primer komposit. Bagaimana saya bisa mencapai ini?
Jawaban:
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])
)
Melalui Enterprise Manager (SSMS) ...
Untuk melihat SQL yang Anda kemudian dapat klik kanan pada Table
> Script Table As
>Create To
Untuk 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)
)
MEMPERBARUI
Saya harus menambahkan!
Jika Anda ingin mengubah kunci asing / primer, pertama-tama Anda harus membuat kunci dengan kendala atau Anda tidak dapat membuat perubahan. Seperti ini di bawah ini:
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)
)
Sebenarnya cara terakhir lebih sehat dan serial. Anda dapat melihat nama Kendala FK / PK (dbo.dbname> Tombol> ..) tetapi jika Anda tidak menggunakan kendala, MSSQL otomatis membuat nama FK / PK acak. Anda perlu melihat setiap perubahan (mengubah tabel) yang Anda butuhkan.
Saya sarankan Anda menetapkan standar untuk diri sendiri; kendala harus didefinisikan sesuai dengan standar Anda. Anda tidak harus menghafal dan Anda tidak perlu berpikir terlalu lama. Singkatnya, Anda bekerja lebih cepat.
Pertama buat database dan tabel, tambahkan kolom secara manual. Di kolom mana menjadi kunci utama. Anda harus mengklik kanan kolom ini dan mengatur kunci utama dan mengatur nilai seed dari kunci primer.
Untuk membuat kunci unik komposit di atas meja
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])
)