Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL Server

Ràng buộc UNIQUE (Unique Constraint) trong SQL Server

Ràng buộc UNIQUE là gì?

Ràng buộc UNIQUE là một cột hoặc tổ hợp các cột xác định duy nhất một bản ghi. Khác với PRIMARY KEY, các cột UNIQUE có thể chứa NULL (miễn là tổ hợp giá trị vẫn duy nhất).

Khác biệt UNIQUE vs PRIMARY KEY

Đặc điểmPRIMARY KEYUNIQUE
Cho phép NULLKhôngCó (miễn tổ hợp duy nhất)
Số lượng trên bảng1Nhiều

Tạo UNIQUE khi CREATE TABLE

CREATE TABLE ten_bang (
    cot1 kieu_du_lieu [NULL | NOT NULL],
    cot2 kieu_du_lieu [NULL | NOT NULL],
    ...
    CONSTRAINT ten_rang_buoc UNIQUE (cot1_rb, cot2_rb, ..., cot_n_rb)
);

Tham số:

  • ten_bang: Tên bảng tạo mới.
  • cot1, cot2...: Các cột của bảng.
  • ten_rang_buoc: Tên ràng buộc UNIQUE.
  • cot1_rb, cot2_rb...: Cột cấu thành ràng buộc.

Ví dụ 1: UNIQUE 1 cột

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)
);

Ví dụ 2: UNIQUE tổ hợp 2 cột

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 UNIQUE bằng ALTER TABLE

ALTER TABLE ten_bang
ADD CONSTRAINT ten_rang_buoc UNIQUE (cot1, cot2, ..., cot_n);

Ví dụ

ALTER TABLE nhanvien
ADD CONSTRAINT nhanvien_duynhat UNIQUE (so_nhanvien);

-- Tổ hợp 2 cột
ALTER TABLE nhanvien
ADD CONSTRAINT nhanvien_duynhat UNIQUE (ho, ten);

Xóa ràng buộc UNIQUE

ALTER TABLE ten_bang
DROP CONSTRAINT ten_rang_buoc;

Ví dụ

ALTER TABLE nhanvien
DROP CONSTRAINT nhanvien_duynhat;