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

Ràng buộc duy nhất trong SQL Server

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 TABL E 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ụ:

  CRE ATE 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 TABL E 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 T ABLE 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 TABL E 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 nhanvi en 
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 TABL E 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.