Ràng buộc kiểm tra trong SQL Server là gì, sử dụng vào mục đích gì và sử dụng như thế nào? Bài viết này sẽ cho bạn câu trả lời.
Ràng buộc kiểm tra Check Constraint trong SQL Server là gì?
Ràng buộc kiểm tra trong SQL Server (Transact-SQL) cho phép xác định điều kiện cho mỗi hàng trong bảng.
Lưu ý
- Ràng buộc kiểm tra không thể định nghĩa trong SQL View.
- Ràng buộc kiểm tra trong bảng phải tham chiếu tới cột trong bảng đó, không thể tham chiếu tới cột ở bảng khác.
- Ràng buộc kiểm tra không thể dùng truy vấn con Subquery.
- Ràng buộc kiểm tra có thể định nghĩa bằng lệnh CREATE TABLE hoặc ALTER TABLE.
Tạo ràng buộc kiểm tra bằng lệnh CREATE TABLE
Cú pháp
CREATE TABLE ten_bang(cot1 kieudulieu [ NULL | NOT NULL ],cot2 kieudulieu [ NULL | NOT NULL ],…CONSTRAINT ten_rangbuocCHECK [ NOT FOR REPLICATION ] (dieu_kien ten_cot));
Các kiểu dữ liệu trong SQL Server
ten_bang
Tên của bảng muốn tạo ràng buộc kiểm tra.
ten_rangbuoc
Tên muốn đặt cho ràng buộc kiểm tra.
ten_cot
Cột của bảng mà ràng buộc kiểm tra sẽ áp dụng.
dieu_kien
Điều kiện ràng buộc phải đáp ứng.
Ví dụ
CREATE TABLE nhanvien(id_nhanvien INT NOT NULL,ho VARCHAR(50) NOT NULL,ten VARCHAR(50),luong MONEY,CONSTRAINT id_nhanvien_kiemtraCHECK (id_nhanvien BETWEEN 1 AND 10000));
Ở ví dụ này, lệnh CREATE TABLE tạo ràng buộc kiểm tra có tên là id_nhanvien_kiemtra trong bảng nhanvien. Ràng buộc này sẽ đảm bảo rằng trường thông tin id_nhanvien chứa giứa trị trong khoảng từ 1 tới 10000.
Đây là một ví dụ khác.
CREATE TABLE nhanvien(id_nhanvien INT NOT NULL,ho VARCHAR(50) NOT NULL,ten VARCHAR(50),luong MONEY,CONSTRAINT luong_kiemtraCHECK (luong > 0));
Ví dụ này tạo ràng buộc kiểm tra luong_kiemtra trong bảng nhanvien, đảm bảo lương sẽ lớn hơn 0.
Tạo ràng buộc kiểm tra bằng lệnh ALTER TABLE
Cú pháp
ALTERTABLE ten_bangADD CONSTAINT ten_rangbuocCHECK (dieu_kien ten_cot);
ten_bang
Tên của bảng muốn thêm ràng buộc kiểm tra.
ten_rangbuoc
Tên đặt cho ràng buộc kiểm tra.
ten_cot
Cột trong bảng mà ràng buộc kiểm tra áp dụng.
dieu_kien
Điều kiện mà ràng buộc kiểm tra phải đáp ứng.
Ví dụ
Đây là ví dụ dùng lệnh ALTER TABLE tạo ràng buộc kiểm tra trong SQL Server.
ALTER TABLEnhanvienADD CONSTRAINT ho_kiemtraCHECK (ho IN (‘Smith’, ‘Anderson’, ‘Jonas’));
Ràng buộc kiểm tra ho_kiemtra được tạo trên bảng nhanvien đã có sẵn, đảm bảo rằng họ của nhân viên sẽ chỉ chứa các giá trị Smith, Anderson hoặc Jonas.
Xóa ràng buộc kiểm tra
Cú pháp
ALTER TABLE ten_bangDROPCONSTRAINT ten_rangbuoc
ten_bang
Tên của bảng muốn xóa ràng buộc kiểm tra.
ten_rangbuoc
Tên ràng buộc kiểm tra muốn xóa.
Ví dụ
ALTER TABLE nhanvienDROPCONSTRAINT ho_kiemtra;
Lệnh này sẽ xóa ràng buộc ho_kiemtra trên bảng nhanvien.
Kích hoạt ràng buộc kiểm tra
Cú pháp
ALTER TABLE ten_bangWITH CHECK CHECK CONSTRAINT ten_rangbuoc;
ten_bang
Tên của bảng muốn kích hoạt lại ràng buộc kiểm tra.
ten_rangbuoc
Tên của ràng buộc kiểm tra cần kích hoạt.
Ví dụ
ALTER TABLE nhanvienWITH CHECK CHECK CONSTRAINT luong_kiemtra;
Ví dụ này kích hoạt lại ràng buộc kiểm tra luong_kiemtra trong bảng nhanvien.
Vô hiệu hóa ràng buộc kiểm tra
Cú pháp
ALTER TABLE ten_bangNOCHECKCONSTRAINT ten_rangbuoc;
ten_bang
Tên của bảng muốn vô hiệu hóa ràng buộc kiểm tra.
ten_rangbuoc
Tên của ràng buộc kiểm tra muốn vô hiệu hóa.
Ví dụ
ALTER TABLE nhanvienNOCHECKCONSTRAINT luong_kiemtra;
Ví dụ này vô hiệu hóa ràng buộc kiểm tra luong_kiemtra trong bảng nhanvien.
Bài trước: Ràng buộc duy nhất trong SQL Server
Bài sau: Chỉ mục trong SQL Server
Học IT










Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy