T-SQL触发器更新表并发送电子邮件

时间:2017-11-10 15:07:59

标签: sql sql-server tsql triggers database-trigger

我需要在表格上创建一个触发器 -

  1. 在特定字段上更改数据时,将更改写入另一个表(日志)
  2. 然后使用sp_send_dbmail
  3. 发送此日志表的内容

    触发器必须能够容纳同时更改的多行。

    到目前为止,我有以下内容,但它会在将内容添加到日志表之前发送电子邮件。

    CREATE TRIGGER [dbo].[trgAfterUpdate] 
    ON [dbo].[Card]
    AFTER UPDATE 
    AS
        IF UPDATE (expiryDate)
        BEGIN               
            INSERT INTO expiryDateChanges (cardID, dateChanged)
                SELECT Inserted.cardID, GETDATE()  
                FROM Inserted;
    
            EXEC msdb.dbo.sp_send_dbmail @profile_name = 'test' ,                
                             @recipients = 'test@test.co.uk' ,                 
                             @subject = N'Expiry Date has been changed' , 
                             @query = 'SELECT cardID 
                                       FROM expiryDateChanges 
                                       WHERE CAST(dateChanged AS DATE) = CAST(GETDATE() AS DATE)'
        END
    

0 个答案:

没有答案