ฉันต้องการสร้างตารางใน 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])
)
ผ่านผู้จัดการองค์กร (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)
)
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)
)
จริง ๆ แล้ววิธีสุดท้ายคือ healthier และต่อเนื่อง คุณสามารถค้นหาชื่อข้อ จำกัด 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])
)