SQL Server: Trigger AFTER
Giải phóng thời gian, khai phóng năng lực
Trigger AFTER
Trigger AFTER được thực thi khi hoàn thành các hoạt động INSERT, UPDATE và DELETE. Trigger AFTER chỉ có thể được tạo ra trên các bảng. Bảng có thể có nhiều loại trigger này được định nghĩa cho mỗi hành động. Nếu có nhiều trigger AFTER được tạo ra trên cùng một bảng thì người dùng phải định nghĩa thứ tự thực thi cho các trigger này. Trigger AFTER được thực thi khi kiểm tra ràng buộc trong bảng đã hoàn tất. Ngoài ra, trigger được thực thi sau khi các bảng Inserted và Deleted được tạo ra. Hình dưới đây thể hiện các loại trigger AFTER.
Sau đây là cú pháp cho việc tạo ra trigger AFTER:
ON <table_name>
[WITH ENCRYPTION]
{ AFTER }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
AS <sql_statement>
, trong đó:
AFTER: chỉ ra rằng trigger DML thực thi sau khi các hoạt động sửa đổi được hoàn tất.
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }: chỉ ra những hoạt động gọi trigger.
Đoạn mã sau tạo ra một trigger AFTER DELETE trên bảng EmployeeDetails. Nếu có bất kỳ bản ghi nhân viên nào bị xóa khỏi bảng thì trigger AFTER DELETE sẽ được kích hoạt. Trigger sẽ hiển thị số lượng bản ghi nhân viên đã xóa khỏi bảng này.
ON EmployeeDetails
AFTER DELETE
AS
BEGIN
DECLARE @num nchar;
SELECT @num = COUNT(*) FROM deleted
PRINT N'Số lượng nhân viên đã xóa = ' + @num
END
Đoạn mã dưới đây sẽ xóa một bản ghi khỏi bảng EmployeeDetails.
Thông báo lỗi sau được hiển thị:
Số lượng nhân viên đã xóa = 0
Giải phóng thời gian, khai phóng năng lực