2017-02-23 18 views
1

的MS图书馆网站展示了如何创建一个电子邮件和嵌入HTML表结果添加句子。 https://msdn.microsoft.com/en-us/library/ms190307.aspxT-SQL;如何在表之前和之后以HTML格式使用sp_send_dbmail

这很好,但你应该如何在电子邮件主体表中添加开始和结束字词? (?它必须是明显的,肯定)

如果初始代码是按以下,则最佳的输出将是: -

Hi,(carriage return) 
Here is a list.(carriage return) 
The details are below:(carriage return) 

(then table goes here) 

(carriage return) 
Thank you for looking.(carriage return) 
Kind regards(carriage return) 
(carriage return) 
From us 

表的示例代码:

DECLARE @tableHTML NVARCHAR(MAX) ; 

SET @tableHTML = 
N'<H1>Work Order Report</H1>' + 
N'<table border="1">' + 
N'<tr><th>Work Order ID</th><th>Product ID</th>' + 
N'<th>Name</th><th>Order Qty</th><th>Due Date</th>' + 
N'<th>Expected Revenue</th></tr>' + 
CAST ((SELECT td = wo.WorkOrderID,  '', 
       td = p.ProductID, '', 
       td = p.Name, '', 
       td = wo.OrderQty, '', 
       td = wo.DueDate, '', 
       td = (p.ListPrice - p.StandardCost) * wo.OrderQty 
      FROM AdventureWorks.Production.WorkOrder as wo 
      JOIN AdventureWorks.Production.Product AS p 
      ON wo.ProductID = p.ProductID 
      WHERE DueDate > '2004-04-30' 
      AND DATEDIFF(dd, '2004-04-30', DueDate) < 2 
      ORDER BY DueDate ASC, 
        (p.ListPrice - p.StandardCost) * wo.OrderQty DESC 
      FOR XML PATH('tr'), TYPE 
) AS NVARCHAR(MAX)) + 
N'</table>' ; 

EXEC msdb.dbo.sp_send_dbmail @recipients='[email protected]', 
@subject = 'Work Order List', 
@body = @tableHTML, 
@body_format = 'HTML' ; 

回答

0

使用此而是......

DECLARE @header NVARCHAR(MAX) 
DECLARE @footer NVARCHAR(MAX) 
DECLARE @tableHTML NVARCHAR(MAX) ; 

SET @header = 'Hi, </br> Here is a list. </br> The details are below </br>' 
SET @footer = '</br> Thank you for looking. </br> Kind regards </br> From us' 

SET @tableHTML = @header + 
N'<H1>Work Order Report</H1>' + 
N'<table border="1">' + 
N'<tr><th>Work Order ID</th><th>Product ID</th>' + 
N'<th>Name</th><th>Order Qty</th><th>Due Date</th>' + 
N'<th>Expected Revenue</th></tr>' + 
CAST ((SELECT td = wo.WorkOrderID,  '', 
       td = p.ProductID, '', 
       td = p.Name, '', 
       td = wo.OrderQty, '', 
       td = wo.DueDate, '', 
       td = (p.ListPrice - p.StandardCost) * wo.OrderQty 
      FROM AdventureWorks.Production.WorkOrder as wo 
      JOIN AdventureWorks.Production.Product AS p 
      ON wo.ProductID = p.ProductID 
      WHERE DueDate > '2004-04-30' 
      AND DATEDIFF(dd, '2004-04-30', DueDate) < 2 
      ORDER BY DueDate ASC, 
        (p.ListPrice - p.StandardCost) * wo.OrderQty DESC 
      FOR XML PATH('tr'), TYPE 
) AS NVARCHAR(MAX)) + 
N'</table>' + @footer 


    EXEC msdb.dbo.sp_send_dbmail @recipients='[email protected]', 
    @subject = 'Work Order List', 
    @body = @tableHTML, 
    @body_format = 'HTML' ; 

这是我的输出

enter image description here

+1

谢谢@manderson。由于body_format是html,但回车没有出现。我已经看过了这里其他的答案,他们指出,类似的问题:( – Baz

+0

没问题,如果解决您的问题,请标记为回答。 – manderson

+0

不幸的是事实并非如此。 – Baz

0

@manderson 我已经得到了这个工作。这是一个我以前没有发现的html错误。非常感谢

相关问题