BEGIN TRY
select 1/0--故意讓它錯
END TRY
BEGIN CATCH
DECLARE @Error_TODAY VARCHAR(1000)
PRINT '執行有錯誤:'+ERROR_MESSAGE()
SET @Error_TODAY='執行有錯誤: ' + ERROR_MESSAGE()
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'sqlmail',
@recipients = 'xxxx@gmail.com',
@body = @Error_TODAY,
@subject = 'sys,SP: xxxx 錯誤訊息通知';
END CATCH
想到可以用的地方:
1.寫在SP裡,如果執行有錯誤,就會通知.
2.排程裡有2支SP
EXEC SP1
EXEC SP2
一般如果SP1執行有錯,就會結束排程,SP2就不會被執行.
但如果在SP1裡做try catch,就錯SP1執行有錯,SP2也能繼續執行