Computer >> Máy Tính >  >> Lập trình >> SQL Server

Khóa chính PRIMARY KEY trong SQL Server

Tìm hiểu cách tạo, xóa, tắt hoặc bật khóa chính trong SQL Server với cú pháp và ví dụ.

Khóa chính trong SQL Server là gì?

Trong SQL Server (Transact-SQL), khóa chính là một trường hoặc một tổ hợp các trường và được định nghĩa là một bản ghi duy nhất. Không có trường nào trong khóa chính chứa giá trị NULL. Một bảng chỉ có một khóa chính. Khóa chính có thể được xác định bằng lệnh CREATE TABLE hoặc lệnh ALTER TABLE.

Tạo khóa chính - bằng lệnh CREATE TABLE

Cú pháp tạo khóa chính bằng lệnh CREATE TABLE

  CREATE TAB LE ten_bang 
(
cot1 kieu_du_lieu [ NULL | NOT NULL ] [ PRIMARY KEY ],
cot2 kieu_du_lieu [ NULL | NOT NULL ],
.
);

hoặc

  CREATE TABLE ten_bang 
(
cot1 kieu_du_lieu [ NULL | NOT NULL ],
cot2 kieu_du_lieu [ NULL | NOT NULL ],

CONSTRAINT ten_rang_buoc PRIMARY KEY (cot1, cot2, … cot_n)
);

Ví dụ về tạo khóa chính bằng lệnh CREATE TABLE

  CREATE TABLE nh anvien 
( nhanvien_id INT PRIMARY KEY,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50), NOT NULL,
luong MONEY
);

Trong ví dụ này, khóa chính cho bảng nhanvien được tạo thành từ một trường có tên nhanvien_id. Ngoài ra, khóa chính có thể được tạo như sau:

  CREATE TABLE nhanvi en 
( nhanvien_id INT,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50), NOT NULL,
luong MONEY
CONSTRAINT nhanvien_pk PRIMARY KEY (nhanvien_id)
);

Bây giờ là ví dụ về cách tạo khóa chính có nhiều hơn 1 trường trong SQL Server.

  CREATE TABLE vn ien 
( ho VARCHAR(50) NOT NULL,
ten VARCHAR(50), NOT NULL,
luong MONEY
CONSTRAINT nhanvien_pk PRIMARY KEY (ho, ten)
);

Trong ví dụ này, chúng tôi đã tạo khóa chính gồm hai cột, hoten . Hai trường này sẽ xác định duy nhất bản ghi trong bảng.

Tạo khóa chính - bằng lệnh ALTER TABLE

Khóa chính chỉ có thể được tạo bằng lệnh ALTER TABLE trong các cột được định nghĩa là NOT NULL. Nếu cột cho phép giá trị NULL, thì không thể thêm khóa chính mà không xóa hoặc tạo lại bảng.

Cú pháp để tạo khóa chính bằng lệnh ALTER TABLE

  ALTER TABLE ten_ bang 
ADD CONSTRAINT t en_rang_buoc PRIMARY KEY (cot1, cot2, . cot_n);

Ví dụ về cách tạo khóa chính bằng lệnh ALTER TABLE

  ALTER T ABLE nhanvien 
ADD CON STRAINT nhanvien_pk PRIMARY KEY (nhanvien_id);

Trong ví dụ này, chúng tôi tạo khóa chính cho bảng có sẵn, bao gồm cả nhanvien_id lĩnh vực . Lưu ý rằng nhanvien_id Trường phải được xác định là NOT NULL trước, nếu không nó sẽ phải bị xóa và tạo lại bảng và xác định trường này là NOT NULL.

Bạn có thể tạo khóa chính với nhiều trường như trong ví dụ sau.

  ALTER TABLE staff 
ADD CONSTRAINT n hanvien_pk PRIMARY KEY (cough, ten);

Khóa chính của bảng bao gồm 2 trường là họ và tên. Cả hai đều phải được định nghĩa là KHÔNG ĐẦY ĐỦ.

Xóa khóa chính trong SQL Server

Cú pháp để xóa khóa chính bằng lệnh ALTER TABLE

  ALTER TAB LE ten_bang 
DROP CONS TRAINT ten_rang_buoc;

Ví dụ về xóa khóa chính bằng lệnh ALTER TABLE

  ALTER TABLE staff 
DROP CONSTRAINT nhanvien_pk;

Ví dụ trên xóa khóa chính trong bảng.

Tắt khóa chính trong SQL Server

Cú pháp để tắt khóa chính bằng lệnh ALTER INDEX

  ALTER IN DEX ten_rang_buoc ON ten_bang 
DISABLE;

Ví dụ:tắt khóa chính bằng lệnh ALTER INDEX

  ALTER INDEX nhanvien_pk ON nhanvien 
DISABLE ;

Ví dụ trên vô hiệu hóa khóa chính trong bảng.

Kích hoạt khóa chính trong SQL Server

Cú pháp để kích hoạt khóa chính bằng lệnh ALTER INDEX

  ALT ER INDEX ten_rang_buoc ON ten_bang 
REBU ILD;

Ví dụ:kích hoạt khóa chính bằng lệnh ALTER INDEX

  ALTE R INDEX nhanvien_pk ON nhanvien 
REBUI LD;

Ví dụ trên kích hoạt lại khóa chính của bảng.