我想使用sp_send_dbmail
通过电子邮件在HTML邮件正文中发送查询结果。
表[HTML_body]
的(仅)列(nvarchar(max))
##HTML_BODY
包含一行样式,一行用于表头,一行用于表的每一行。该表包含10行,每行的长度为500-650个字符。
我使用以下内容:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'ProfileMail'
,@recipients = 'me@mycompanydomain.domain'
,@subject = 'MySubject'
,@body = 'These are the values'
,@body_format = 'HTML'
,@query_result_width = 2000
,@query = ' SET NOCOUNT ON SELECT [HTML_body] FROM ##HTML_BODY SET NOCOUNT OFF'
,@file_attachments='\\ThePath\Graph.jpg'
,@attach_query_result_as_file = 0
,@query_result_separator = '|'
,@exclude_query_output = 1
,@query_result_no_padding = 1
,@query_result_header = 0
,@append_query_error=1
代码可以工作,但每行在256个字符后被截断...任何人都可以知道可能出现什么问题?
我明确指出@query_result_width
应该是2000!
我使用的是SQL Server 9.0.4035(2005),但没有找到与@query_result_width
兼容的任何信息。
更新
我遇到与SQL Server 12.0.2000(2014)相同的问题
答案 0 :(得分:0)
由于@query_no_truncate = 1
nvarchar(max)
我的大胆来自the docs
[@ query_no_truncate =] query_no_truncate
指定是否使用避免截断大型可变长度数据类型的选项执行查询(varchar(max), nvarchar(max),varbinary(max),xml,text,ntext,image和用户定义的数据类型)。设置后,查询结果不包括列标题。 query_no_truncate值的类型为bit。当值为0或未指定时,查询中的列将截断为 256 个字符。值为1时,查询中的列不会被截断。此参数默认为0。