2016-07-06 95 views
2

是否有可能讓SQL Server (2008)發送電子郵件提醒如果stored procedure失敗任何原因?存儲過程失敗時的警報

我可以很容易地從SQL作業中完成它,但在Programmability區域或stored procedure本身的屬性中看不到任何選項。此stored procedure是通過其他應用程序按需觸發的。我已經看過從另一個應用程序做它,但這增加了許多層次的複雜性 - 我希望SQL Server讓我覆蓋這個!?

我已搜查,但沒有發現同樣的問題的人。

謝謝。

+0

https://msdn.microsoft.com/en-us/library/ms190307.aspx –

回答

2

的你如何能做到這個高級概述..

1.Modify存儲特效在失敗的情況下返回1,並登錄到table.This也有一些弱點,因爲some failures wont be Caught
2.接通信息登錄到表中,然後使用SP_SEND_DBMAIL發送電子郵件很容易。

EXEC msdb.dbo.sp_send_dbmail 
    @profile_name = 'Adventure Works Administrator', 
    @recipients = '[email protected]', 
    @query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder 
        WHERE DueDate > ''2004-04-30'' 
        AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' , 
    @subject = 'stored procedures Failures' 

,如果我要發送電子郵件,我會用上面的辦法,而不是對每個failure.Since我記錄的數據到一個表發送電子郵件,我可以運行SQL作業,每隔1小時左右,這取決於我的頻率需要

1

是的,這是很簡單,只需使用普通的錯誤處理,如TRY/CATCH,然後在你的catch塊使用sp_send_dbmail發送電子郵件到你需要的任何收件人。

+0

太好了,我會看看該功能。謝謝! :) –

+0

我建議不要直接從catch發送郵件 - 寫給你自己的失敗sps日記,然後連續作業。一封電子郵件中有幾個錯誤 –

+0

我想這要看情況,如果它的東西,只是每天一次執行做一些處理,將它放在try/catch語句可能會被罰款,如果它正在執行每日5000次,那麼我想記錄到一張桌子和發送一封電子郵件將是有道理的。 – steoleary