首页 > 解决方案 > SQL Server 2014 INSERT 触发器未触发(未发送邮件)

问题描述

我使用的触发器没有触发,感谢任何想法/帮助。我检查了 sysmail_allitems 和它是空的。为了提供更多解释,我有一个程序,我们通过表单提交旅行请求,当您提交表单时,会在 TS_CUSTOM_TRVLBCK 中创建一个新行,每次发生这种情况时,我都希望发送一封带有以下条件的电子邮件。我已经提交了一个新的表单表单(添加的图像),该行在那里但触发器没有触发。

我的目标是在 where 语句中的一个用户提交请求时收到一封电子邮件(创建了一个新行)

在此处输入图像描述

CREATE TRIGGER [dbo].[TS_TRAVEL_NEW_IIS]
ON [dbo].[TS_CUSTOM_TRVLBCK]
FOR INSERT
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @user Varchar(100)
    DECLARE @subject Varchar(100)
    DECLARE @body Varchar (200)

    SELECT @user  + RTRIM(TRVL_INITIATOR) FROM inserted;

    SET @subject = 'New Travel Request - ' + @user
    SET @body = 'Kindky note that user ' + @user + ' has submitted a new travel request.'

    IF EXISTS (SELECT 1 FROM inserted WHERE [TRVL_INITIATOR] IN ('Luke Gatt','Marcelle Attard','Matthew Borg Dingli','Mark Schembri','Fiona Tesi','Charmaine Buttigieg','Stephen Mifsud','Tessabelle Cammilleri'))
    BEGIN
        EXEC msdb.dbo.sp_send_dbmail
          @recipients = 'luke.gatt@mca.org.mt', 
          @profile_name = 'AbsenceMailer',
          @subject = @subject,
          @body = @body;
    END
END

GO   

标签: sql-serversql-insertdatabase-trigger

解决方案


推荐阅读