MS SQL Server alerts and email operator notifications
- Category: 電腦相關
 - Last Updated: Tuesday, 20 December 2016 23:37
 - Published: Monday, 22 August 2016 14:33
 - Written by sam
 
設定MSSQL排程工作通知功能
填入設定檔名稱(自訂)
填入相關資訊,這邊是使用GMAIL來發信,所以SSL要打勾並填上PORT號587
最後下方的驗證記得填入
再來回到上一步,此部份可有可無(主要是預設值寄出檔案為1MB,可以依需求修改)
我將預設值改為10MB
至此可以試發郵件,如無誤會收到信件
再來點擊 操作員 並新增
填入自訂值
點選SQL Server Agent
 
選用先前設定的帳號
找一隻自訂的JOB測試
在"通知"項目,可以見到要在何時通知,自訂即可
另外也附上直接在SQL執行完時,通知執行結果TSQL
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'sam',
@recipients = 'sam小老鼠myla.gotdns.com',
@subject = 'SQLJOB24HRS-',
@query = 'Select 
        [Job Name] = CONVERT(NVARCHAR(50), j.name)
   , ROW_NUMBER() Over (Partition By j.name Order By h.run_time) as [SN]
      , [LastRunDate] = h.run_date
      , CONVERT(VARCHAR,DATEADD(S,(run_time/10000)*60*60 /* hours */
          +((run_time - (run_time/10000) * 10000)/100) * 60 /* mins */
          + (run_time - (run_time/100) * 100)  /* secs */
      , CONVERT(DATETIME,RTRIM(run_date),113)),120) AS [Time Run]
      , CONVERT(VARCHAR(10),CONVERT(DATETIME,RTRIM(19000101))+(h.run_duration * 9 + h.run_duration % 10000 * 6 + h.run_duration % 100 * 10) / 216e4,108) AS [Run_Duration]
      , CASE h.run_status
  when 0 then ''Failed''
  when 1 then ''Pass''
  when 2 then ''Retry''
  when 3 then ''Cancel''
  when 4 then ''Running''
 end as [JobStatus]
    From
        msdb.dbo.sysjobhistory h
      Left join msdb.dbo.sysjobs j On j.job_id = h.job_id
    Where h.step_id=0
    AND DATEADD(S,
  (run_time/10000)*60*60 /* hours */
  +((run_time - (run_time/10000) * 10000)/100) * 60 /* mins */
  + (run_time - (run_time/100) * 100)  /* secs */
  , CONVERT(DATETIME,RTRIM(run_date),113)) >= DATEADD(d,-1,GetDate()) ',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'SQLJOB24HRS.TXT'
#######160827######
check notify
select name, notify_level_email, notify_email_operator_id from msdb..sysjobs order by name, notify_level_email
update notify setting
UPDATE S SET S.[notify_level_email] = 2, S.[notify_email_operator_id] = 1 FROM MSDB.dbo.sysjobs S WHERE S.[Notify_Level_Email] = 0 AND S.[Enabled] = 1; GO













