
Trigger là một stored procedure đặc biệt, trigger thường được dùng để kiểm tra ràng buộc trên nhiều bảng dữ liệu hoặc nhiều dòng dữ liệu trên cùng 1 bảng.
Thao tác với trigger
Chúng ta sẽ bắt đầu tìm hiểu các cú pháp để tương tác với đối tượng trigger trong SQL Server.
Một chút ghi chú
Để dễ hiểu và dễ nhớ hơn về trigger, chúng ta cần lưu ý đến 1 vài thứ:
- Trigger cũng có thể được xem là một stored procedure.
- Procedure này sẽ tự thực thi vào 1 thời điểm thích hợp.
Tạo mới một trigger
Cú pháp tổng quát để tạo một trigger cơ bản như sau:
1 2 3 4 5 6 |
CREATE TRIGGER [schema_name.]trigger_name ON table_name AFTER {[INSERT],[UPDATE],[DELETE]} [NOT FOR REPLICATION] AS {sql_statements} |
Xóa một trigger
Để xóa một trigger, chúng ta có thể sử dụng giao diện SSMS hoặc đơn giản hơn, chúng ta có thể sử dụng SQL với cú pháp:
1 |
DROP TRIGGER [ IF EXISTS ] [schema_name.]trigger_name [ ,...n ]; |
Bài tập minh họa
Giả sử chúng ta cần tạo một CSDL “Trường học” với các yêu cầu sau:
- CSDL bao gồm các bảng dữ liệu
- Sinh_Vien (MSSV, Ho_ten, Gioi_tinh)
- Giang_Vien(MSGV, Ho_ten, Gioi_tinh, Chuyen_mon)
- Lop(ML, Mon_hoc, Nam_hoc, Hoc_ky, Si_so)
- Dang_Ky(ML, MSSV)
- Ngoài các RBTV cơ bản như Gioi_tinh phải là ‘Nam’ hoặc ‘Nữ’, Hoc_ky chỉ nhận 1 trong 3 giá trị là 1, 2 và 3….vv CSDL còn phải tuân theo các yêu cầu:
- Để mở 1 lớp học, trường yêu cầu phải có tối thiểu 2 giảng viên có chuyên môn cùng với môn học.
- Mỗi lớp học chỉ cho phép tối đa 30 sinh viên