У меня есть следующий триггер INSTEAD OF DELETE, который отправляет электронное письмо во время отката любых попыток удаления.
ALTER TRIGGER tr_OnDel_Orders
ON ORDERS
INSTEAD OF DELETE
AS
BEGIN
SET NOCOUNT ON;
declare @b varchar(5000)
Declare @OrderID BIGINT,
SELECT @OrderID = OrderID
FROM deleted d
set @b = 'Someone attempted to delete the following order:' + CHAR(10);
set @b = @b + ' OrderID: ' + cast(@OrderID as varchar(30)) + CHAR(10);
set @b = @b + ' UserID: ' + SYSTEM_USER
RAISERROR('Cannot delete order', 16, 1)
ROLLBACK TRAN
EXEC msdb.dbo.sp_send_dbmail @recipients = 'myemail@mycompany.com',
@body = @b,
@subject = 'Attempt to Delete an order'
RETURN
END
GO
Это работает, когда я пытаюсь удалить заказ из таблицы ORDERS.Однако я не могу понять почему, этот триггер продолжает периодически отправлять электронные письма с пустым телом.Насколько я знаю, нет очевидных попыток удалить заказ.Что еще может вызвать такие пустые письма?