需要创建sql触发器,将html电子邮件发送给客户

时间:2015-07-16 18:49:06

标签: sql sql-server sql-server-2005

我需要通过sql server 2005设置一些内容,它会自动向新客户发送欢迎消息。通过先知21,每当新客户进入系统时,系统就会给他们一个唯一的9位数字。这些存储在名为“customer”的表中。我的数据库电子邮件已经设置完毕,我有个人资料。

我认为这样的事情应该有用吗?

    IF EXISTS (SELECT 1 FROM inserted WHERE (customer id is not already present in table))
    BEGIN
        EXEC msdb.dbo.sp_send_dbmail
          @recipients = 'whoever@customeremail.com', 
          @profile_name = 'P21 Alert',
          @subject = 'Welcome!',
          @body_format = 'HTML'
          @body = 'Thank you for ordering product <product ID>, welcome to our company';
    END
END
GO`    

请帮助或指出我正确的方向!

1 个答案:

答案 0 :(得分:0)

您的触发器需要考虑到一次可以插入多于一行的事实(想想INSERT INTO... SELECT .. FROM)。

由于你想要单独向每个客​​户发送一封电子邮件,你几乎都在看光标一次循环一行,并且你绝对,你肯定不希望光标在你的触发器主体,因为它很可能会导致性能问题。

因此,您希望触发器将行插入保留/队列表,然后编写SQL作业以从游标循环中的该表中读取行并发送电子邮件。