Steffi1013
MIS
I am setting up an job that I want to email only if there is a result set. It works if I do not use HTML as the @body_format... but when I use the HTML formatting, it sends the email even if there is no results... How can I make this work using HTML formatting? see code below
DECLARE @tableHTML NVARCHAR(MAX) ;
SET @tableHTML =
N'<H1>Log Backup Issues</H1>' +
N'<table border="1">' +
N'<tr><th>Database Name</th><th>Last Log Backup Time</th>' +
CAST ( ( SELECT
td = database_name, '',
td = CAST(max(backup_finish_date) AS NVARCHAR(30)), ''
FROM msdb.dbo.backupset
WHERE type = 'L'
GROUP BY database_name
HAVING CAST(max(backup_finish_date) AS NVARCHAR(30)) < DATEADD(hh, -1, GETDATE())
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>' ;
IF @@ROWCOUNT > 0
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'steph@tuttt.com',
@subject = 'Log Backup Issues',
@importance = 'High',
@body = @tableHTML,
@body_format = 'HTML';
end
DECLARE @tableHTML NVARCHAR(MAX) ;
SET @tableHTML =
N'<H1>Log Backup Issues</H1>' +
N'<table border="1">' +
N'<tr><th>Database Name</th><th>Last Log Backup Time</th>' +
CAST ( ( SELECT
td = database_name, '',
td = CAST(max(backup_finish_date) AS NVARCHAR(30)), ''
FROM msdb.dbo.backupset
WHERE type = 'L'
GROUP BY database_name
HAVING CAST(max(backup_finish_date) AS NVARCHAR(30)) < DATEADD(hh, -1, GETDATE())
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>' ;
IF @@ROWCOUNT > 0
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'steph@tuttt.com',
@subject = 'Log Backup Issues',
@importance = 'High',
@body = @tableHTML,
@body_format = 'HTML';
end