Đây là một câu hỏi chung nhưng động lực cho câu hỏi này là một vấn đề tôi gặp phải khi sử dụng SQL Server.
Tôi có trình kích hoạt này được đính kèm với một sự kiện Chèn trên bảng có chứa một số logic, như là một hiệu ứng phụ, sẽ gây ra lỗi nếu không có hàng nào được chèn. Khi điều tra sâu hơn, tôi phát hiện ra rằng cò súng đã bắn mặc dù không có hàng nào được chèn vào.
Ngôn ngữ được sử dụng trong Microsoft Docs trên DML Triggers dường như mâu thuẫn với hành vi này:
Các trình kích hoạt DML là một loại thủ tục được lưu trữ đặc biệt tự động có hiệu lực khi một sự kiện DML diễn ra có ảnh hưởng đến bảng hoặc dạng xem được xác định trong trình kích hoạt.
Đây có phải là hành vi mặc định trên các DBMS không? Có một lý do cụ thể để kích hoạt một kích hoạt khi không có hàng nào bị ảnh hưởng?