Primary key Constraint

Một phần của tài liệu Bài giảng SQL SERVER tin chi) (Trang 50)

Một bảng thường có một hay nhiều cột với các giá trị riêng để nhận biết mỗi hàng trong bảng. Các cột này được gọi là khóa chính (Primary key) của bảng và bảo đảm tính toàn vẹn thực thể của bảng.

 SQL Server tự động tạo một chỉ mục cho bảng ứng với các cột tham gia primary key constraint.

 Một bảng chỉ có một constraint Primay key.

 Một cột nằm trong constraint Primay key không thể chấp nhận giá trị Null, trùng lắp. Bởi vì Primay key constraint bảo đảm tính duy nhất của dữ liệu nên chúng thường được ấn định cho cột nhận dạng (identity column).

 Nếu một Primay key constraint được ấn định trên nhiều cột, các giá trị có thể được lặp lại trong một cột, nhưng mỗi sự kết hợp giá trị từ tất cả các cột trong Primay key constraint phải là sự kết hợp duy nhất.

Tạo Primary Key Constraint

Có thể tạo constraint Primay key trong khi tạo table hoặc thêm constraint Primay key cho table có sẳn

Để hiệu chỉnh constraint Primay key của một table thì bạn phải xóa constraint Primay key và tạo lại.

Định nghĩa Primary Key Constraint khi tạo bảng:

- Định nghĩa ở mức cột

CREATE TABLEtablename

(columname datatype[ CONSTRAINTconstraintname] PRIMARY KEY [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR =fillfactor]

[ON {filegroup| DEFAULT} ] [,...]

CREATE TABLEtablename

(columname datatype[,...], [CONSTRAINTconstraintname] PRIMARY KEY [ CLUSTERED | NONCLUSTERED ]

{ (column[ ASC | DESC ] [ ,...n] ) } [ WITH FILLFACTOR =fillfactor] [ ON {filegroup| DEFAULT } ]

Ví dụ 1: Vừa tạo bảng vừa định nghĩa Primary Key Constraint Cách 1: Định nghĩa ở mức cột

CREATE TABLE Table1

(col1 INT NOT NULL PRIMARY KEY, col2 VARCHAR(30)

)

-- Kiểm tra constraint

EXEC Sp_helpconstraint Table1 Cách 2: Định nghĩa ở mức bảng

CREATE TABLE Table2

(col1 INT NOT NULL, col2 VARCHAR(30)

CONSTRAINT Table2_PK PRIMARY KEY(col1) )

EXEC Sp_helpconstraint Table1

Định nghĩa Primary Key Constraint với bảng đã tồn tại:

- Định nghĩa ở mức cột

ALTER TABLE tablename ADD columname datatype [CONSTRAINT constraintname ] PRIMARY KEY [ON {filegroup | DEFAULT} ] [,...]

- Định nghĩa ở mức bảng

ALTER TABLEtablenameADD[CONSTRAINTconstraintname] PRIMARY KEY { (column[ ASC | DESC ] [ ,...n ] ) }

[ ON {filegroup| DEFAULT } ]

Ví dụ 2: Thêm một PRIMARY KEY constraint cho một bảng có sẳn CREATE TABLE Table3

( col1 INT NOT NULL, col2 VARCHAR(30) )

ADD CONSTRAINT table3_PK PRIMARY KEY (col1) EXEC Sp_helpconstraint Table3

Lưu ý: Khi một Primary Key Constraint được thêm vào một bảng với cột có sẳn trong bảng thì SQL Server sẽ kiểm tra dữ liệu hiện có có tuân theo các qui tắc của một Primary key hay không:Không Null, Không trùng lắp. Nếu không thỏa qui tắc thì sẽ

không tạo được Primary Key Constraint.

Xóa một Primary Key Constraint

ALTER TABLE Table2

DROP CONSTRAINT table2_PK

Lưu ý: Không thể xóa một Primary Key constraint nếu nó được tham chiếu bởi một Foreign key Constraint của một bảng khác, muốn xóa thì phải xóa Foreign key Constraint trước.

Một phần của tài liệu Bài giảng SQL SERVER tin chi) (Trang 50)