Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Sự khác biệt giữa Trigger và Procedure


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_name

Procedure

  • 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