Hướng dẫn này giải thích cách tạo, thêm và xóa các ràng buộc duy nhất trong SQL Server.
Ràng buộc duy nhất trong SQL Server là gì?
Ràng buộc duy nhất là một trường hoặc tổ hợp các trường dữ liệu, xác định duy nhất một bản ghi. Một số trường có thể chứa giá trị NULL, miễn là sự kết hợp của các giá trị là duy nhất.
Sự khác biệt giữa ràng buộc duy nhất và khóa chính
Khóa chính Khóa chính Khóa chính Duy nhất Ràng buộc duy nhất Không trường nào trong khóa chính được phép chứa giá trị NULL. Một số trường của các ràng buộc duy nhất có thể chứa các giá trị NULL, miễn là sự kết hợp của các giá trị là duy nhất.Tạo một ràng buộc duy nhất bằng lệnh CREATE TABLE
CREATE TABLE ten_bang
(
cot1 kieudulieu [ NULL | NOT NULL ];
cot2 kieudulieu [ NULL | NOT NULL ];
…
CONSTRAINT ten_rangbuoc UNIQUE (cot1_rb, cot2_rb, … cot_n_rb)
);
ten_bang
Tên của bảng bạn muốn tạo
cot1, cot2
Cột bạn muốn tạo trong bảng
ten_rangbuoc
Tên của ràng buộc duy nhất
cot1_rb, cot2_rb ,. cot_n_rb
Các cột tạo nên ràng buộc duy nhất.
Kiểu dữ liệu trong SQL Server
Ví dụ:
CREATE TABLE nhanvien
( id_nhanvien INT PRIMARY KEY,
so_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT nhanvien_duynhat UNIQUE (so_nhanvien)
);
Trong ví dụ này, chúng tôi đã tạo một ràng buộc duy nhất có tên nhanvien_duynhat trên bảng được tạo bởi lệnh CREATE TABLE, bao gồm một trường duy nhất so_nhanvien.
Có thể tạo các ràng buộc duy nhất với nhiều hơn 1 trường như trong ví dụ bên dưới.
CREATE TABLE nhanvien
( id_nhanvien INT PRIMARY KEY,
so_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT nhanvien_duynhat UNIQUE (ho, ten)
);
Tạo một ràng buộc duy nhất bằng lệnh ALTER TABLE
ALTER TABLE ten_bang
ADD CON
STRAINT ten_rangbuoc UNIQUE (cot1, cot2, . cot_n);
ten_bang
Tên của bảng bạn muốn chỉnh sửa. Đây là bảng bạn muốn thêm các ràng buộc duy nhất.
ten_rangbuoc
Tên của ràng buộc duy nhất mà bạn muốn tạo.
cot1, cot2. cot_n
Các cột tạo nên ràng buộc duy nhất.
Ví dụ:
ALTER TABLE nhanvien
ADD CONSTR
AINT nhanvien_duynhat UNIQUE (so_nhanvien);
Ví dụ trên sử dụng lệnh ALTER TABLE để tạo một ràng buộc duy nhất trên một bảng hiện có, được gọi là nhanvien, được gọi là trường so_nhanvien. Để tạo các ràng buộc với nhiều hơn 1 trường, hãy xem ví dụ bên dưới.
ALTER TABLE nhanvien
ADD CONSTRAINT ten
_nhanvien_duynhat UNIQUE (cough, ten);
Xóa liên kết duy nhất
Cú pháp
ALTER TABLE ten_bang
DROP CONSTRAINT
ten_rangbuoc;
ten_bang
Tên của bảng bạn muốn chỉnh sửa. Đây là bảng bạn muốn xóa ràng buộc duy nhất.
ten_rangbuoc
Tên của ràng buộc duy nhất mà bạn muốn xóa.
Ví dụ:
ALTER TABLE nhanvien
DROP CONST
RAINT nhanvien_duynhat;
Ví dụ trên loại bỏ ràng buộc duy nhất có tên nhanvien_duynhat trên bảng.