3

我正在尝试使用 sp_send_dbmail 发送附件。附件存储在表的 varbinary(MAX) 列中。这是我的查询:

EXEC msdb.dbo.sp_send_dbmail 
        @recipients='mick.walker@somewhere.com',
        @subject = 'Test Attachment',
        @body = 'Test',
        @body_format = 'HTML',
        @profile_name = 'intranetadmin',
        @query = 'Select DocumentData from [myDB].[dbo].[Documents] Where DocumentID = 8',
        @query_result_header = 0,
        @attach_query_result_as_file = 1,
        @query_attachment_filename = 'Test.pdf',
        @exclude_query_output = 1,
        @query_no_truncate = 0;

电子邮件成功发送并带有 pdf 附件。但是,在打开附件时,出现错误。我认为文件的大小正在被截断,即使我在查询中明确声明不。

我已经检查了数据库邮件设置中允许的最大邮件大小,目前是 104857600 字节(100mb),我尝试发送的文件远不及这个大小 - 所以我有点困惑。

4

2 回答 2

0

尝试将@query_no_truncate参数设置为 1。当查询中使用较大的可变长度数据类型并且此选项为 0 或未指定时,数据将被剪切为 256 个字符。参考:http: //msdn.microsoft.com/en-us/library/ms190307.aspx

于 2012-10-18T10:47:29.817 回答
0

我知道这是一个旧线程,但我刚刚遇到了同样的问题。问题是 SQL 报错,并且已经将错误信息存储在附件中。

将附件名称更改为具有.txt扩展名并发送电子邮件。打开.txt文件并查看错误。安全配置可能与此有关。

于 2015-06-16T22:28:52.747 回答