Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

เงื่อนไข CHECK (Check Constraint) ใน SQL Server

เงื่อนไข CHECK ใน SQL Server คืออะไร ใช้ทำอะไร บทความนี้จะตอบคำถามของคุณ

เงื่อนไข CHECK Constraint ใน SQL Server คืออะไร?

เงื่อนไข CHECK ใน SQL Server (Transact-SQL) อนุญาตให้กำหนดเงื่อนไขสำหรับแต่ละแถวในตาราง

หมายเหตุ

  1. เงื่อนไข CHECK ไม่สามารถกำหนดใน SQL View ได้
  2. เงื่อนไข CHECK ในตารางต้องอ้างอิงคอลัมน์ในตารางนั้น ไม่สามารถอ้างอิงคอลัมน์ในตารางอื่นได้
  3. เงื่อนไข CHECK ไม่สามารถใช้ Subquery (คำสั่งย่อย) ได้
  4. เงื่อนไข CHECK สามารถกำหนดได้โดยคำสั่ง CREATE TABLE หรือ ALTER TABLE

สร้างเงื่อนไข CHECK ด้วยคำสั่ง CREATE TABLE

ไวยากรณ์

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

ten_bang: ชื่อตารางที่ต้องการสร้างเงื่อนไข CHECK

ten_rangbuoc: ชื่อที่ต้องการตั้งให้กับเงื่อนไข CHECK

ten_cot: คอลัมน์ของตารางที่เงื่อนไข CHECK ใช้

dieu_kien: เงื่อนไขที่ต้องเป็นไปตาม

ตัวอย่าง

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

ในตัวอย่างนี้ คำสั่ง CREATE TABLE สร้างเงื่อนไข CHECK ชื่อ id_nhanvien_kiemtra ในตาราง เงื่อนไขนี้จะรับรองว่าคอลัมน์ id_nhanvien มีค่าระหว่าง 1 ถึง 10000

ตัวอย่างอีกตัวหนึ่ง:

CREATE TABLE nhanvien
(id_nhanvien INT NOT NULL,
 ho VARCHAR(50) NOT NULL,
 ten VARCHAR(50),
 luong MONEY,
 CONSTRAINT luong_kiemtra
 CHECK (luong > 0)
);

ตัวอย่างนี้สร้างเงื่อนไขตรวจสอบค่าลงในตาราง รับรองว่าเงินเดือนจะมากกว่าศูนย์

สร้างเงื่อนไข CHECK ด้วยคำสั่ง ALTER TABLE

ไวยากรณ์

ALTER TABLE ten_bang
ADD CONSTRAINT ten_rangbuoc
CHECK (dieu_kien ten_cot);

ten_bang: ชื่อตารางที่ต้องการเพิ่มเงื่อนไข CHECK

ten_rangbuoc: ชื่อที่ตั้งให้กับเงื่อนไข CHECK

ten_cot: คอลัมน์ในตารางที่เงื่อนไข CHECK ใช้

dieu_kien: เงื่อนไขที่เงื่อนไข CHECK ต้องเป็นไปตาม

ตัวอย่าง

นี่คือตัวอย่างการใช้คำสั่ง ALTER TABLE เพื่อสร้างเงื่อนไข CHECK ใน SQL Server

ALTER TABLE nhanvien
ADD CONSTRAINT ho_kiemtra
CHECK (ho IN ('Smith', 'Anderson', 'Jonas'));

เงื่อนไข CHECK ho_kiemtra ถูกสร้างบนตารางที่มีอยู่แล้ว รับรองว่านามสกุลพนักงานจะมีค่าเฉพาะ Smith, Anderson หรือ Jonas เท่านั้น

ลบเงื่อนไข CHECK

ไวยากรณ์

ALTER TABLE ten_bang
DROP CONSTRAINT ten_rangbuoc

ten_bang: ชื่อตารางที่ต้องการลบเงื่อนไข CHECK

ten_rangbuoc: ชื่อเงื่อนไข CHECK ที่ต้องการลบ

ตัวอย่าง

ALTER TABLE nhanvien
DROP CONSTRAINT ho_kiemtra;

คำสั่งนี้จะลบเงื่อนไข ho_kiemtra บนตาราง

เปิดใช้งานเงื่อนไข CHECK

ไวยากรณ์

ALTER TABLE ten_bang
WITH CHECK CHECK CONSTRAINT ten_rangbuoc;

ten_bang: ชื่อตารางที่ต้องการเปิดใช้งานเงื่อนไข CHECK ใหม่

ten_rangbuoc: ชื่อเงื่อนไข CHECK ที่ต้องการเปิดใช้งาน

ตัวอย่าง

ALTER TABLE nhanvien
WITH CHECK CHECK CONSTRAINT luong_kiemtra;

ตัวอย่างนี้เปิดใช้งานเงื่อนไข CHECK luong_kiemtra บนตารางอีกครั้ง

ปิดใช้งานเงื่อนไข CHECK

ไวยากรณ์

ALTER TABLE ten_bang
NOCHECK CONSTRAINT ten_rangbuoc;

ten_bang: ชื่อตารางที่ต้องการปิดใช้งานเงื่อนไข CHECK

ten_rangbuoc: ชื่อเงื่อนไข CHECK ที่ต้องการปิดใช้งาน

ตัวอย่าง

ALTER TABLE nhanvien
NOCHECK CONSTRAINT luong_kiemtra;

ตัวอย่างนี้ปิดใช้งานเงื่อนไข CHECK luong_kiemtra บนตาราง