У меня возникла проблема с отправкой электронной почты с форматированием HTML с SQL-сервера.sp_send_dbmail Неправильный синтаксис рядом с '<'
В следующем разделе кода появляется ошибка "Line 1, incorrect syntax near '<'"
.
SET @tableHTML =
'<H1>Progress Report</H1>' +
'<table border="1">' +
'<tr>' +
'<th>Project Name</th>' +
'<th>Platform</th>' +
'<th>Due By</th>' +
'<th>Current Status</th>' +
'<th>Current State</th>' +
'</tr>' +
CAST (
(
SELECT
td = [Project Name], ' ',
td = Platform, ' ',
td = [Due By], ' ',
td = [Current Status], ' ',
td = [Current State], ' '
FROM [dbo].[table_name]
ORDER BY [Current Status] DESC
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX)) +
'</table>' ;
Возможно, я не знаю, что это такое? Есть идеи?
Благодаря
Update 1:
Ok Я запустить код в сеансе отладки и проверили содержимое @tableHTML, содержимое выглядит хорошо, и он получает заполняется с ожидаемыми данными моего Таблица.
Значение ошибки, поступающие откуда-то еще, поэтому на этот раз я скопировал весь запрос.
DECLARE @tableHTML NVARCHAR(MAX);
SET @tableHTML =
'<h1>Progress Report</h1>' +
'<table border="1">' +
'<tr>' +
'<th>Project Name</th>' +
'<th>Platform</th>' +
'<th>Due By</th>' +
'<th>Current Status</th>' +
'<th>Current State</th>' +
'</tr>' +
CAST
(
(
SELECT
td = [Project Name], '',
td = Platform, '',
td = [Due By], '',
td = [Current Status], '',
td = [Current State], ''
FROM [dbo].[table_name]
ORDER BY [Current Status] DESC
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX)) +
'</table>';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'db_mail_account',
@recipients = '[email protected]',
@subject = 'Daily Project Tracking Report',
@query = @tableHTML,
@body_format = 'HTML';
Еще раз спасибо.
Ничто не выделяется. Я бы предложил вам удалить одну строку за раз и выяснить, что вызывает ошибку hte. –
Хорошо, так что, как и предполагалось, на самом деле ничего не было видно, поэтому я решил немного углубиться и посмотреть результат в реальном времени. Подробности см. В обновлении моего оригинального сообщения. – user2295457