SQL Server Job执行发送邮件

0
SQL Server执行Job之后发送邮件,这个已经配置成功了,想问的是。SQL Server中有没有更加详细点邮件发送,自带的好像只能发送总时间,能不能配置把job的每一步花了多少时间发送出来
已邀请:
1

梁勇 - 天道酬勤、上善若水。爱好商业智能 2014-12-15 回答

可以研究下 msdb.dbo.sysjobhistory、msdb.dbo.sysjobs 几张表里面的信息,里面的Job,对应的日志都在里面存放的有,跟进你的需要写对应的SQL就可以啦
贴个SQL看看


DECLARE @TableHTML NVARCHAR(MAX); --存放日志列表
SET @TableHTML =
N'<H1 align="center">System日志列表</H1>' +
N'<table border="1" cellspacing="0" cellPadding="5" style="line-height:25px; font-size:13px;">' +
N'<tr style="background:#e1e1e1;"><th nowrap>作业名称</th>' +
N'<th nowrap>作业开始时间</th><th nowrap>作业结束日期</th><th nowrap>日志详情</th>' +
N'</tr>' +
CAST ( ( SELECT td = jobs.name, '',
--td = history.server, '',
td = CONVERT(VARCHAR,jobs.date_created,120), '',
td = CONVERT(VARCHAR,jobs.date_modified,120), '',
td = history.message, ''
FROM msdb.dbo.sysjobhistory history
INNER JOIN msdb.dbo.sysjobs jobs
ON history.job_id=jobs.job_id
WHERE jobs.name = 'AAAA' AND step_id <> 0
AND CONVERT(DATE,date_created) = CONVERT(DATE,GETDATE())
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>' ;
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'dba_profile',
@recipients = 'xxxx@126.com',
@subject = 'SystemDemo错误日志列表',
@body = @tableHTML,
@body_format = 'HTML' ;

要回复问题请先登录注册