带有二进制附件问题的sp_send_dbmail

时间:2012-10-18 08:56:21

标签: sql sql-server-2008 sp-send-dbmail

我正在尝试使用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附件。但是,当打开附件时,我收到一个错误。我认为文件的大小正在被截断,即使我在查询中明确表示不存在。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

更改附件名称以获得$scope.formData分机并发送电子邮件。打开.txt文件并查看错误。安全配置可能就是这样。