sp_send_dbmail失败并带有附件

dar*_*ars 5 sql-server sql-server-2012

我需要发送带有文件附件的电子邮件。附件必须来自图像类型数据字段。在查询窗口和存储过程中都运行以下代码时,不会发送电子邮件。在查询窗口中,它仅显示“命令已成功完成”,但没有电子邮件。

EXEC  msdb.dbo.sp_send_dbmail @recipients = 'xx@xx.com',
    @subject = 'test',
    @execute_query_database = 'myDB',
    @body = 'test',
    @body_format = 'HTML', 
    @profile_name = 'myProfile',
    @append_query_error = 1,
    @query = 'Select docData from [myDB].[dbo].[Documents] Where id = 1',
    @query_result_header = 0,
    @attach_query_result_as_file = 1,
    @query_attachment_filename = 'Test.doc',
    @exclude_query_output = 1,
    @query_no_truncate = 1;
Run Code Online (Sandbox Code Playgroud)

当我删除@query时,将发送电子邮件:

EXEC  msdb.dbo.sp_send_dbmail @recipients = 'xx@xx.com',
    @subject = 'test',
    @execute_query_database = 'myDB',
    @body = 'test',
    @body_format = 'HTML', 
    @profile_name = 'myProfile';
Run Code Online (Sandbox Code Playgroud)

但是我需要附件代码才能工作。任何帮助将不胜感激。

scs*_*mon 7

评论时间太长。

更改@exclude_query_output = 0@exclude_query_output = 1。这可能会在发生的情况上显示一条消息(错误消息)。

在您的示例中,我能够解决该错误:

无法初始化错误编号为-2147024809的sqlcmd库。

我获得了,希望您可以通过更改@query_result_header = 0为来获得@query_result_header = 1。我不知道为什么缺少标题会导致它失败,但它已将其修复在我的开发箱中。

  • 谢谢你。我将 @exclude_query_output 值更改为 0,并且更多描述性错误消息指示超出了文件大小限制。所以我在这篇文章的帮助下增加了它,现在我可以发送附件电子邮件:增加电子邮件的文件大小限制:/sf/ask/69833991/ -附件大小为电子邮件发送使用 msdb (2认同)