INSERT của bạn câu lệnh luôn chạy trong một giao dịch - bạn đã xác định rõ ràng một giao dịch hoặc nếu không, thì SQL Server sẽ sử dụng một giao dịch ngầm định.
Bạn đang chèn một (hoặc nhiều) hàng vào bảng của mình. Sau đó - vẫn bên trong giao dịch - AFTER INSERT trình kích hoạt chạy và kiểm tra các điều kiện nhất định - thường sử dụng Inserted bảng giả có sẵn bên trong trình kích hoạt, chứa các hàng đã được chèn.
Nếu bạn gọi ROLLBACK TRANSACTION trong trình kích hoạt của bạn, sau đó có - giao dịch của bạn, với mọi thứ đang làm, được quay trở lại và nó như thể INSERT đó không bao giờ xảy ra - không có gì hiển thị trong bảng cơ sở dữ liệu của bạn.
Ngoài ra:FOR INSERT giống như AFTER INSERT trong SQL Server - trình kích hoạt được thực thi sau INSERT tuyên bố đã hoàn thành công việc của nó.
Một điều cần lưu ý (mà rất nhiều lập trình viên mắc sai lầm):trình kích hoạt được kích hoạt một lần cho mỗi câu lệnh - KHÔNG một lần mỗi hàng! Vì vậy, nếu bạn chèn 20 hàng cùng một lúc, trình kích hoạt sẽ được kích hoạt một lần và Inserted bảng giả bên trong trình kích hoạt chứa 20 hàng. Bạn cần tính đến điều đó khi viết trình kích hoạt - bạn không luôn xử lý chỉ với một hàng được chèn vào!