SQL Server:sp_send_dbmail在调用存储过程时从不对电子邮件进行排队

时间:2012-11-21 17:20:33

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

我有一个设置为运行sp_send_dbmail的SQL作业,并将存储过程的结果作为csv文件附加到电子邮件中。这项工作一直持续到一个半星期。

完全披露:我在那个时候对存储过程进行了更改。存储过程以前在一个链接服务器中查看表,现在正在查看另一个链接服务器中的表。

我能够将代码从作业中取出并在查询窗口中成功运行,我也能够在没有sp_send_dbmail调用的情况下在查询窗口中成功执行存储过程。此外,作业按计划执行并报告成功,我在作业历史记录中看不到任何错误消息。我已经包含了作业中的代码来运行程序并在下面发送邮件:

USE msdb
GO
EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'SMail',
    @recipients = 'xxxx@example.com',
    @query = 'EXEC [REP01].[Mktg_Reporting].[dbo].DailyC2C',
    @subject = 'Daily Call History',
    @query_result_separator=',',
    @query_result_no_padding=1,
    @query_result_header=0,
    @attach_query_result_as_file = 1,
    @exclude_query_output=1,
    @query_attachment_filename='Calls.csv';

自从我创建作业以来,我没有更改任何代码,我只对存储过程进行了更改,以便查看不同的链接数据源。任何形式的帮助都表示赞赏。

编辑:我还检查了sysmail_mailitems表,发现每次我手动运行作业时当前没有排队的消息,希望确保我包含该详细信息。

1 个答案:

答案 0 :(得分:0)

我只是对此有所了解,Pondlife在权限问题方面走在了正确的轨道上。在我最初回复他之后,我看起来有点深,并意识到NT AUTHORITY \ SYSTEM用户没有设置为正确访问链接服务器。我已经解决了这个问题。