@subject ='Message Subject',
@profile_name ='DatabaseMailProfile',
@query ='SELECT Product FROM sb2..SalesHistory GROUP BY Product HAVING COUNT(*) > 3',
但是,当在查询结果集中包含多个域时,格式化变得每况愈下。一个好消息是,可以很简单的使用SQL Server 2005中的一些XML和HTML新特征来格式化你的查询结果集,因此,可以很容易的在信件中查看查询结果。列表C中的脚本演示了如何利用查询结果发送一封XML/HTML格式的电子邮件。
DECLARE @xml NVARCHAR(MAX)DECLARE @body NVARCHAR(MAX)
SET @xml =CAST(( SELECT Product AS 'td','',SUM(SalePrice) AS 'td'
FROM SalesHistory GROUP BY Product FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
SET @body ='<html><H1>Sales Reports</H1><body bgcolor=yellow><table border = 2><tr><th>Product</th><th>SaleAmount</th></tr>' SET @body = @body + @xml +'</table></body></html>'
EXEC msdb.dbo.sp_send_dbmail
@recipients =N'chapman.tim@gmail.com',@body = @body,@body_format ='HTML',@subject ='Message Subject',@profile_name ='DatabaseMailProfile'当你发送HTML格式的邮件时,允许你将查询结果嵌入到邮件的查询部分,从而可以将查询结果格式化成为更容易看的形式。(虽然,你可能会争论说我在信件中使用的黄色背景,看起来并不是很舒服。)