SQL Server: Ràng buộc UNIQUE trong SQL Server (UNIQUE constraint)

Ràng buộc UNIQUE được sử dụng để đảm bảo dữ liệu trong một cột là khác nhau.

1. Sử dụng ràng buộc UNIQUE cho một cột:
CREATE TABLE Tên_bảng
(
    Tên_cột_1  kiểu_dữ_liệu  UNIQUE,
    Tên_cột_2  kiểu_dữ_liệu,
    .....................
    Tên_cột_n  kiểu_dữ_liệu
)

Ví dụ 1: tạo UNIQUE cho cột ID trong bảng tblSinhVien
CREATE TABLE tblSinhVien
(
ID INT NOT NULL UNIQUE,
MaSinhVien NVARCHAR(20) NOT NULL,
TenSinhVien NVARCHAR(50) NOT NULL,
GioiTinh BIT
)
Trong đó, cột ID có ràng buộc UNIQUE. Nếu nhập ID trùng nhau, sẽ xuất hiện lỗi như sau:
Hình 1. Sử dụng ràng buộc UNIQUE trong bảng tblSinhVien

Trong hình trên, khi bạn thêm mới 2 bản ghi có trùng ID=1, sẽ hiển thị thông báo lỗi, bởi vì cột ID ta xét UNIQUE, nên không cho phép giá trị trùng nhau.

2. Sử dụng ràng buộc UNIQUE trên nhiều cột:
CREATE TABLE Tên_bảng
(
   Tên_cột_1   kiểu_dữ_liệu,
   Tên_cột_2   kiểu_dữ_liệu,
   ................
   Tên_cột_n   kiểu_dữ_liệu,
   CONSTRAINT UC_Tên_bảng UNIQUE(tên_cột_1, tên_cột_2)
)

Ví dụ 2: Tạo UNIQUE cho cột ID, MaSinhVien trong bảng tblSinhVien
CREATE TABLE tblSinhVien
(
ID INT NOT NULL,
MaSinhVien NVARCHAR(20) NOT NULL,
TenSinhVien NVARCHAR(50) NOT NULL,
GioiTinh BIT,
 CONSTRAINT UC_tblSinhVien UNIQUE(ID,MaSinhVien)
)

Thêm hai sinh viên có ID = 1 trùng nhau, nhưng mã sinh viên khác nhau, sẽ không xuất hiện lỗi. Nhưng nếu ID và MaSinhVien trùng nhau sẽ xuất hiện lỗi cảnh báo UNIQUE
Hình 2. Thêm dữ liệu không vi phạm ràng buộc UNIQUE

Hình 3. Thêm dữ liệu vi phạm ràng buộc UNIQUE

3. Thêm ràng buộc UNIQUE cho một cột hoặc nhiều cột trên bảng có sẵn
3.1. Thêm UNIQUE cho 1 cột:
ALTER TABLE Tên_bảng
ADD UNIQUE(Tên_Cột)

3.2. Thêm UNIQUE cho nhiều cột:
ALTER TABLE Tên_bảng
ADD CONSTRAINT UC_tên_bảng UNIQUE(tên_cột_1, tên_cột_2)

4. Xóa ràng buộc UNIQUE trên bảng
ALTER TABLE Tên_bảng
DROP CONSTRAINT UC_tên_bảng

Ví dụ 3: Xóa ràng buộc UNIQUE đã tạo ở ví dụ 2
ALTER TABLE tblSinhVien
DROP UC_tblSinhVien

Related Posts
Previous
« Prev Post