2012-11-21 37 views
0

我有一个SQL作业设置为运行sp_send_dbmail并将存储过程的结果作为csv文件附加到电子邮件。这项工作一直持续到一周半之前。SQL Server:调用存储过程时,sp_send_dbmail从不排队电子邮件

完全公开:我在那段时间对存储过程进行了更改。存储过程先前正在查看一个链接服务器中的一个表,现在正在查看另一个链接服务器中的表。

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

USE msdb 
GO 
EXEC msdb.dbo.sp_send_dbmail 
    @profile_name = 'SMail', 
    @recipients = '[email protected]', 
    @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表,发现没有消息排队当天每次我手动运行的工作,想确保我包括该细节。

+0

两台链接的服务器有什么区别?他们都是SQL Server,还是其他的?链接服务器上的权限是否相同? – Pondlife

+0

作业运行的服务器和链接的服务器都是SQL服务器。我相信这份工作是由NT AUTHORITY \ SYSTEM在两台服务器上拥有相同的权限执行的。 – morris295

+0

刚刚在我的原始答复后再次检查时,NT AUTHORITY \ SYSTEM用户实际上没有在链接服务器上拥有适当的权限。感谢您指出我的方式! – morris295

回答

0

我只是看了更深一点,Pondlife在权限问题上处于正确的轨道。在我对他进行初步回复之后,我看了更深一层,并且意识到NT AUTHORITY \ SYSTEM用户没有设置为正确访问链接服务器。我已经解决了这个问题。

相关问题