sp_send_dbmail截断 256 个字符的行



我想使用sp_send_dbmail通过电子邮件在 HTML 消息正文中发送查询结果。

##HTML_BODY的(唯一(列[HTML_body](nvarchar(max))包含一行样式,一行用于表头,一行用于表的每一行。该表包含 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='\ThePathGraph.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( 时遇到了同样的问题

由于nvarchar(max),您需要使用@query_no_truncate = 1

我的大胆来自文档

[ @query_no_truncate= ] query_no_truncate
指定是否使用避免截断大型可变长度数据类型(varchar(max(、nvarchar(max(、varbinary(max(、xml、text、ntext、图像和用户定义的数据类型(的选项执行查询。设置后,查询结果不包括列标题。query_no_truncate值的类型为 bit。当值为 0 或未指定时,查询中的列将截断为256个字符。当值为 1 时,查询中的列不会被截断。此参数默认为 0。

相关内容

  • 没有找到相关文章

最新更新