Ràng buộc kiểm tra trong SQL Server là gì, nó được sử dụng để làm gì và nó được sử dụng để làm gì? 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 ý
- Không thể xác định các ràng buộc kiểm tra trong Chế độ xem SQL.
- Ràng buộc kiểm tra trong bảng phải tham chiếu đến cột trong bảng đó, không thể tham chiếu đến cột trong bảng khác.
- Kiểm tra các ràng buộc không thể sử dụng truy vấn con Subquery.
- Các ràng buộc kiểm tra có thể được xác định 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_rangbuoc
CHECK [ NOT FOR REPLICATION ] (dieu_kien ten_cot)
);
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 bạn muốn đặt cho ràng buộc séc.
ten_cot
Cột bảng áp dụng ràng buộc kiểm tra.
điều kiện
Các điều kiện 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_kiemtra
CHECK (id_nhanvien BETWEEN 1 AND 10000)
);
Trong ví dụ này, câu lệnh CREATE TABLE tạo ra một ràng buộc kiểm tra có tên id_nhanvien_kiemtra trong bảng. Ràng buộc này sẽ đảm bảo rằng trường thông tin id_nhanvien chứa giá trị từ 1 đến 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_kiemtra
CHECK (luong > 0)
);
Ví dụ này tạo một ràng buộc kiểm tra tổng tổng trong bảng, đảm bảo rằng mức 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_bang
ADD CONSTAINT ten_rangbuoc
CHECK (d
ieu_kien ten_cot);
ten_bang
Tên của bảng muốn thêm các ràng buộc kiểm tra.
ten_rangbuoc
Tên được đặt cho ràng buộc séc.
ten_cot
Các cột trong bảng có áp dụng các ràng buộc kiểm tra.
điều kiện
Các điều kiện kiểm tra các ràng buộc phải đáp ứng.
Ví dụ:
Đây là một ví dụ về việc sử dụng lệnh ALTER TABLE để tạo các ràng buộc kiểm tra trong SQL Server.
ALTER TABLEnhanvien
ADD CONSTRAINT ho_kiemtra
CHECK (ho IN ('S
mith', 'Anderson', 'Jonas'));
Ràng buộc kiểm tra ho_kiemtra được tạo trên bảng hiện có, đảm bảo rằng họ của nhân viên sẽ chỉ chứa các giá trị của Smith, Anderson hoặc Jonas.
Xóa các ràng buộc kiểm tra
Cú pháp
ALTER TABLE ten_bang
DROP
CONSTRAINT ten_rangbuoc
ten_bang
Tên của bảng để xóa ràng buộc kiểm tra.
ten_rangbuoc
Kiểm tra tên ràng buộc muốn xóa.
Ví dụ:
ALTER TABLE nhanvien
DROP
CONSTRAINT ho_kiemtra;
Lệnh này sẽ xóa ràng buộc ho_kiemtra trên bảng.
Bật liên kết kiểm tra
Cú pháp
ALTER TABLE ten_bang
WITH CHEC
K CHECK CONSTRAINT ten_rangbuoc;
ten_bang
Tên của bảng để 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 được kích hoạt.
Ví dụ:
ALTER TABLE nhanvien
WITH CHEC
K CHECK CONSTRAINT luong_kiemtra;
Ví dụ này kích hoạt lại ràng buộc kiểm tra trên bảng trong bảng.
Tắt ràng buộc kiểm tra
Cú pháp
ALTER TABLE ten_bang
NOCHECK
CONSTRAINT ten_rangbuoc;
ten_bang
Tên của bảng để vô hiệu hóa các ràng buộc kiểm tra.
ten_rangbuoc
Tên của ràng buộc kiểm tra muốn bị tắt.
Ví dụ:
ALTER TABLE nhanvien
NOCHECK
CONSTRAINT luong_kiemtra;
Ví dụ này vô hiệu hóa ràng buộc kiểm tra luong_kiemtra trong bảng.