2016-02-21 89 views
1

这是我已有的代码。当“区域”列中的数据已更新时,我只想简单地将电子邮件发送到某个地址。使用UPDATE触发器在数据库中更新表时通知我

CREATE TRIGGER [dbo].[Update_Trigger] 
ON [dbo].[tablename] 
AFTER UPDATE 
AS 
    IF UPDATE(Area) 
    BEGIN 
     EXEC msdb.dbo.sp_send_dbmail 
      @profile_name = 'example' 
      @recipients = '[email protected]' 
      @body = 'An area has changed' 
      @subject = 'The Area records have been changed' 
    END; 
GO 

我可能在做一些愚蠢的错误,所以任何帮助将不胜感激,谢谢。

+2

请让我们知道什么是你面对 – pkamathk

+0

错误/问题,如果它是你有一个语法问题,可能还缺少一个“BEGIN”在第4行的第一个'AS'之后标记。请参阅:http://stackoverflow.com/questions/12137102/sql-update-trigger-only-when-column-is-modified – pkamathk

+0

@pkamathk - 不,它是'SQL Server'中的有效语法 –

回答

1

你缺少逗号之间建立起

  • 数据库邮件Sp_send_dbmail过程参数的

    CREATE TRIGGER [dbo].[Update_Trigger] 
    ON [dbo].[tablename] 
    AFTER UPDATE 
    AS 
        IF UPDATE([Area]) 
         BEGIN 
          EXEC msdb.dbo.Sp_send_dbmail 
          @profile_name = 'example', --Here 
          @recipients = '[email protected]', --Here 
          @body = 'An area has changed', --Here 
          @subject = 'The Area records have been changed' 
         END; 
    
    GO 
    

    确保以下设置的使用Sp_send_dbmail之前提出的,

    1. Example轮廓必须启用使用数据库邮件配置向导或sp_configure

    配置运行下面的代码

    sp_configure 'show advanced options', 1; 
    GO 
    RECONFIGURE; 
    GO 
    sp_configure 'Database Mail XPs', 1; 
    GO 
    RECONFIGURE 
    GO 
    
  • 相关问题