-- ===============================================
-- Author: Eric Zierdt
-- Create date: 3/3/2016
-- Description: Emails upon agent job completion
-- ===============================================
DECLARE @JOB_NAME SYSNAME = N'AdventureWorks Backup'; -- NAME OF AGENT JOB
WHILE EXISTS
(
SELECT 1
FROM msdb.dbo.sysjobs_view job
JOIN msdb.dbo.sysjobactivity activity ON job.job_id = activity.job_id
JOIN msdb.dbo.syssessions session ON session.session_id = activity.session_id
JOIN (
SELECT MAX(agent_start_date) AS max_agent_start_date
FROM msdb.dbo.syssessions
) session_max ON session.agent_start_date = session_max.max_agent_start_date
WHERE activity.run_Requested_date IS NOT NULL
AND activity.stop_execution_date IS NULL
AND job.name = @JOB_NAME
--AND activity.start_execution_date > CAST(GETDATE() AS DATE)
)
BEGIN
WAITFOR DELAY '00:00:45'; -- SET HOW OFTEN YOU WANT YOUR JOB TO CHECK
END
DECLARE @buffer_memory_used_MB FLOAT
,@Body VARCHAR(MAX)
,@Subject VARCHAR(255) = 'Job Complete'
,@To VARCHAR(512) = 'user@email.com' -- INSERT YOUR EMAIL ADDRESS HERE
SET @Body = 'The monitored job has completed running.'
EXEC msdb.dbo.sp_send_dbmail
@recipients = @To
, @subject = @Subject
, @body = @Body
, @body_format = 'HTML'
Thursday, March 3, 2016
Script - Email on Job Completion
Sometimes I have long running agent jobs (like say a backup job) and I don't want to do work on the server while the specific job is running; so I've come up with a quick and easy script using the sp_send_dbmail ability to monitor for the job completion and then email me. I've done similar things with some manual tasks that take a while (index reindex or update stats) so I am notified when the script completes.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment