Hiểu khác biệt giữa Trigger (Kích hoạt) và Procedure (Thủ tục lưu trữ).
Trigger
- Gọi ngầm (implicitly) khi sự kiện INSERT, DELETE, UPDATE xảy ra trên bảng CSDL.
- Lồng trigger (nesting) đạt được qua bảng.
- Trigger không thể gọi hoặc định nghĩa bên trong trigger khác.
- Lệnh transaction (COMMIT, ROLLBACK, SAVEPOINT) không dùng trong trigger.
- Dùng để duy trì tính toàn vẹn tham chiếu (referential integrity).
- Ghi lại hoạt động trên bảng.
- Không trả về giá trị.
- Không truyền tham số vào trigger.
Cú pháp định nghĩa trigger:
CREATE TRIGGER trigger_nameProcedure
- Gọi tường minh (explicitly) bởi user/app qua 'exec', 'EXECUTE', hoặc 'procedure_name'.
- Có thể gọi và định nghĩa bên trong procedure khác.
- Lệnh transaction dùng được trong procedure.
- Procedure thực hiện tác vụ do user chỉ định.
- Có thể truyền tham số.
- Trả về giá trị 0 đến n.
Cú pháp định nghĩa procedure:
CREATE PROCEDURE procedure_name