Sql 如何在向表中添加新记录时创建发送电子邮件的触发器

Sql 如何在向表中添加新记录时创建发送电子邮件的触发器,sql,sql-server,Sql,Sql Server,当我运行名为“personimport”的接口时,它将在表中生成一条新记录(运行历史记录) 表中有5列: interface-id, interface name, date, personid, error msg 插入“1,qwerty,2019-09-11,a1”成功,但插入“2,人员导入,2019-09-12,a2”将抛出错误 无论何时,只要将名为“person import”的新记录添加到此表中,我都希望向一组员工发送电子邮件 如何在SQL Server中为此编写触发器?您需要配置数

当我运行名为“personimport”的接口时,它将在表中生成一条新记录(运行历史记录)

表中有5列:

interface-id, interface name, date, personid, error msg
插入“1,qwerty,2019-09-11,a1”成功,但插入“2,人员导入,2019-09-12,a2”将抛出错误

无论何时,只要将名为“person import”的新记录添加到此表中,我都希望向一组员工发送电子邮件


如何在SQL Server中为此编写触发器?

您需要配置数据库邮件:

您需要创建一个触发器:

  • 从SSMS转到表并展开
  • 右键单击触发器,然后单击“新建触发器”
  • 在表名上和插入后命名触发器

    CREATE TRIGGER SendTheEmails
       ON  runhistory
       AFTER insert
    AS 
    BEGIN
        -- Insert statements for trigger here
    END
    GO
    

    然后,对于要发送电子邮件的SQL:

    Declare @message varchar(max)
    Declare @subjectline varchar(60)
    set @subjectline = 'Your Subject'
    set @message = 'Your Message body'
    
    EXEC msdb.dbo.sp_send_dbmail    @profile_name   =   'dbmailProfileName'
    ,                               @recipients     =   'youremails@yourdomain'
    ,                               @subject        =   @subjectline
    ,                               @body_format    =   'html'
    ,                               @body           =   @message
    
  • 显然,您可以声明其他变量,并使用insert表获取更多信息


    是的,正如菲尔伯特所说,这看起来像是一个复制品,你是在问如何创建触发器吗?还是发送
    dbmail
    ?或者两者都有?当新记录添加到表中时,我希望在表上创建一个触发器,并发送一封电子邮件说“新记录已添加到表中”