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

Kiểm tra các ràng buộc trong SQL Server

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 ý

  1. Không thể xác định các ràng buộc kiểm tra trong Chế độ xem SQL.
  2. 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.
  3. Kiểm tra các ràng buộc không thể sử dụng truy vấn con Subquery.
  4. 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ụ:

  CREA TE 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.

  CRE ATE 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

  ALTER TABLE 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 TABLE  nhanvien 
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

  ALTE R 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ụ:

  ALTE R 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 TA BLE 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 TA BLE 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 TA BLE 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 T ABLE 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.