【发布时间】:2015-03-04 00:31:18
【问题描述】:
我有一个 SP 可以识别并删除不再需要的旧数据库信息,并编制一份已删除帐户的列表。
我正在发送一封包含这些帐户列表的电子邮件,但由于某种原因,HTML 格式仅应用于邮件正文的一部分,任何人都可以提供此问题的原因/解决方案吗?
DECLARE @table TABLE (acct varchar(4))
INSERT INTO @table (acct)
SELECT 1234
UNION ALL SELECT 2345
UNION ALL SELECT 3456
UNION ALL SELECT 4567
DECLARE @accountList VARCHAR(MAX)
SET @accountList =
STUFF((SELECT ' <br /> ' + acct FROM @table FOR XML PATH('')),1,1,'')
DECLARE @mailBody VARCHAR(MAX)
SELECT @mailBody = 'The job ran successfully.' +
'<br /><br />Account List Purged: <br />' + @accountList
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Default',
@recipients = 'email@email.email',
@subject = 'Data Purge [Accounts Purged]',
@body_format = 'html',
@body = @mailBody
这是从exec msdb.dbo.sp_send_dbmail 发送的内容
注意<br /> 是如何成功“应用”到FOR XML PATH... 之外但在其中的区域,以文字形式编写的。
任何人都有这方面的经验和/或知道我需要做什么来补救?
【问题讨论】:
-
试试这个:
SET @accountList = STUFF((SELECT ' <br /> ' + acct FROM @table FOR XML PATH(''), type).value('(./text())[1]','varchar(max)'),1,1,'') -
@wewestthemenace 有效!如果你把它作为一个答案我会这样标记它,但你能否也提供一些信息为什么一个比另一个更有效?
标签: sql-server sql-server-2008 sp-send-dbmail for-xml-path