2016-02-21 32 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 
    
  • 相關問題