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 TABLE ten_bang
(
cot1 kieu_du_lieu [ NULL | NOT NULL ] [ PRIMARY KEY ],
cot2 kieu_du_lieu [ NULL | NOT NULL ],
.
);
hoặc
CREATE TABLEten_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 nhanvien
( 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 nhanvien
( 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 vnien
( 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, ho
và ten
. 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 TABLE 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 TABLE 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 INDEX ten_rang_buoc ON ten_bang
DISABLE;
Ví dụ:tắt khóa chính bằng lệnh ALTER INDEX
ALTERINDEX 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
ALTER 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
ALTER 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.