Tôi muốn tạo các bảng trong SQL Server 2008, nhưng tôi không biết cách tạo khóa chính tổng hợp. Làm thế nào tôi có thể đạt được điều này?
Tôi muốn tạo các bảng trong SQL Server 2008, nhưng tôi không biết cách tạo khóa chính tổng hợp. Làm thế nào tôi có thể đạt được điều này?
Câu trả lời:
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])
)
Thông qua Trình quản lý doanh nghiệp (SSMS) ...
Để xem các SQL sau đó bạn có thể nhấp chuột phải vào Table
> Script Table As
>Create To
Đối với máy chủ MSSQL 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)
)
CẬP NHẬT
Tôi nên thêm!
Nếu bạn muốn thêm khóa ngoại / khóa chính, trước tiên bạn nên tạo khóa có ràng buộc hoặc bạn không thể thay đổi. Như thế này dưới đây:
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)
)
Thực tế cách cuối cùng là lành mạnh và nối tiếp. Bạn có thể xem các tên ràng buộc FK / PK (dbo.dbname> Phím> ..) nhưng nếu bạn không sử dụng ràng buộc, MSSQL sẽ tự động tạo các tên FK / PK ngẫu nhiên. Bạn sẽ cần xem xét mọi thay đổi (bảng thay đổi) bạn cần.
Tôi khuyên bạn nên thiết lập một tiêu chuẩn cho chính mình; các ràng buộc phải được xác định theo tiêu chuẩn của bạn. Bạn sẽ không phải ghi nhớ và bạn sẽ không phải suy nghĩ quá lâu. Tóm lại, bạn làm việc nhanh hơn.
Đầu tiên tạo cơ sở dữ liệu và bảng, thêm các cột theo cách thủ công. Trong đó cột là khóa chính. Bạn nên nhấp chuột phải vào cột này và đặt khóa chính và đặt giá trị gốc của khóa chính.
Để tạo một khóa duy nhất tổng hợp trên bàn
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])
)