Bạn đang xem : t sql thêm ràng buộc kiểm tra

Bài viết này trình bày cách thêm ràng buộc CHECK vào một bảng hiện có.

Bạn có thể thêm một ràng buộc vào bảng hiện có bằng cách sử dụng câu lệnh ALTER TABLE cùng với đối số ADD CONSTRAINT . Ví dụ bên dưới.

Ví dụ 1 – Tạo bảng

Đầu tiên, hãy tạo một bảng mà chúng tôi sẽ thêm ràng buộc CHECK .

 TẠO BẢNG Sự kiện
(
  EventId int IDENTITY (1,1) NOT NULL PRIMARY KEY,
  EventName varchar (255) KHÔNG ĐỦ,
  Ngày bắt đầu KHÔNG ĐẦY ĐỦ,
  Ngày kết thúc KHÔNG ĐỦ,
  Giá tiền nhỏ KHÔNG ĐẦY ĐỦ
);

Ví dụ 2 – Thêm Ràng buộc Cấp độ Cột

Bây giờ, hãy thêm ràng buộc KIỂM TRA vào cột Giá.

Sự kiện

 ALTER TABLE
  ADD CONSTRAINT chkPrice KIỂM TRA (Giá & gt; 0);

Ràng buộc này sẽ đảm bảo rằng giá luôn lớn hơn 0.

Giờ đây, ràng buộc đã được thêm vào, đây là điều sẽ xảy ra nếu chúng tôi cố gắng chèn dữ liệu không hợp lệ:

 CHÈN VÀO Sự kiện (Tên sự kiện, Ngày bắt đầu, Ngày kết thúc, Giá)
VALUES ('ICCC 2020', '2020-01-01', '2020-02-02', 0);

Kết quả:

 Bản tin 547, Mức 16, Trạng thái 0, Dòng 1
Câu lệnh INSERT xung đột với ràng buộc CHECK "chkPrice". Xung đột xảy ra trong cơ sở dữ liệu "EMS", bảng "dbo.Event", cột "Giá".

Trong trường hợp này, ràng buộc CHECK chỉ định rằng tất cả dữ liệu trong cột Price phải lớn hơn 0. Nói cách khác, giá không được bằng 0 và nó không thể là tiêu cực.

Xem Thêm  Chức năng đặt tên trong Excel (Define Name) - hàm tìm số lớn nhất trong excel

Đây được gọi là ràng buộc cấp cột, vì nó được xác định trên một cột duy nhất. Nó áp dụng cho dữ liệu trong một cột.

Ví dụ 3 – Thêm Ràng buộc Cấp Bảng

Bây giờ, hãy thêm ràng buộc CHECK cấp bảng. Thao tác này sẽ kiểm tra dữ liệu trong hai cột.

Sự kiện

 ALTER TABLE
  ADD CONSTRAINT chkEndDate
  KIỂM TRA (Ngày kết thúc & gt; = Ngày bắt đầu);

Trong trường hợp này, tôi thêm một ràng buộc để đảm bảo rằng ngày kết thúc không bao giờ được sớm hơn ngày bắt đầu. Đây là kiểm tra dữ liệu trên hai cột và do đó là một ràng buộc cấp bảng.

Cố gắng chèn một giá trị không hợp lệ:

 CHÈN VÀO Sự kiện (Tên sự kiện, Ngày bắt đầu, Ngày kết thúc, Giá)
VALUES ('ICCC 2020', '2020-01-01', '1970-02-02', 150,00);

Kết quả:

 Bản tin 547, Mức 16, Trạng thái 0, Dòng 1
Câu lệnh INSERT xung đột với ràng buộc CHECK "chkEndDate". Xung đột xảy ra trong cơ sở dữ liệu "EMS", bảng "dbo.Event".

Như mong đợi, thao tác không thành công vì ngày kết thúc của tôi sớm hơn ngày bắt đầu.

Lưu ý rằng để kiểm tra ràng buộc này, tôi đã phải tăng giá lên một giá trị hợp lệ để ngăn ràng buộc trước đó không được kích hoạt trước (các ràng buộc CHECK được xác thực theo thứ tự đã tạo).

Ví dụ 4 – Chèn thành công dữ liệu phù hợp với ràng buộc

Để chèn hàng thành công, tất cả những gì chúng ta cần làm là đảm bảo rằng chúng ta đang chèn các giá trị hợp lệ.

Xem Thêm  Biểu mẫu - Phản ứng - hành động biểu mẫu phản ứng js

Ví dụ:

 CHÈN VÀO Sự kiện (Tên sự kiện, Ngày bắt đầu, Ngày kết thúc, Giá)
VALUES ('ICCC 2020', '2020-01-01', '2020-02-02', 150,00);

CHỌN * TỪ Sự kiện;

Kết quả:

 + ----------- + ------------- + ------------- + ------ ------ + ---------- +
| EventId | EventName | Ngày bắt đầu | Ngày kết thúc | Giá cả |
| ----------- + ------------- + ------------- + --------- --- + ---------- |
| 4 | ICCC 2020 | 2020-01-01 | 2020-02-02 | 150,0000 |
+ ----------- + ------------- + ------------- + --------- --- + ---------- +

Lưu ý rằng cột EventId đã tăng lên 4. Điều này là do đây là cột IDENTITY . Một điều quan trọng cần nhớ về các cột IDENTITY là chúng tăng lên ngay cả khi một ràng buộc khiến hoạt động INSERT không thành công.

Một số hạn chế của Ràng buộc CHECK

Dưới đây là một số hạn chế cần lưu ý khi làm việc với các ràng buộc CHECK :

  • Điều kiện tìm kiếm phải đánh giá thành biểu thức Boolean và không thể tham chiếu đến bảng khác.
  • Biểu thức không được chứa kiểu dữ liệu bí danh .
  • Các ràng buộc

  • CHECK không thể được xác định trên các cột text , ntext hoặc image .


Xem thêm những thông tin liên quan đến chủ đề t sql thêm ràng buộc kiểm tra

T-SQL – CHECK Constraints

  • Tác giả: Tutorials Point (India) Ltd.
  • Ngày đăng: 2018-02-14
  • Đánh giá: 4 ⭐ ( 7353 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: T-SQL – CHECK Constraints
    Watch more Videos at https://www.tutorialspoint.com/videotutorials/index.htm
    Lecture By: Mr. Anadi Sharma, Tutorials Point India Private Limited

[Tự học SQL] Tìm hiểu về ràng buộc CHECK và DEFAULT trong SQL

  • Tác giả: cafedev.vn
  • Đánh giá: 5 ⭐ ( 3216 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này cafedev chia sẻ cho ace về cách sử dụng ràng buộc CHECK và DEFAULT trong SQL.
Xem Thêm  NGÔN NGỮ LẬP TRÌNH BẬC CAO ppt - ngôn ngữ bậc cao

Tổng hợp các câu lệnh T-SQL – Cộng đồng Java Việt Nam

  • Tác giả: congdongjava.com
  • Đánh giá: 4 ⭐ ( 1317 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tổng hợp các câu lệnh T-SQL

    create database: tạo cơ sở dữ liệu

    create database HoSoSinhVien

    create database HoSoSinhVien
    on (name=’HSSV_data’…

[PostgreSQL] Rằng buộc Kiểm Tra (CHECK Constraint)

  • Tác giả: vinasupport.com
  • Đánh giá: 3 ⭐ ( 6930 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: PostgreSQL Tutorial: Ràng buộc KIỂM TRA (CHECK Constraint) là 1 loại ràng buộc cho phép bạn chỉ định nếu 1 giá trị trong cột phải đáp ứng 1 yêu cầu cụ thể.

Ràng buộc kiểm tra trong SQL Server

  • Tác giả: hktsoft.com
  • Đánh giá: 4 ⭐ ( 3198 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Ràng Buộc Check Trong SQL

  • Tác giả: www.codehub.com.vn
  • Đánh giá: 3 ⭐ ( 8570 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ràng buộc `CHECK` được sử dụng nhằm giới hạn phạm vi giá trị mà một cột có thể chứa.

Thiết lập ràng buộc trong sql server (Bài 2)

  • Tác giả: giasutinhoc.vn
  • Đánh giá: 4 ⭐ ( 8402 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php