2012-11-21 36 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用戶沒有設置爲正確訪問鏈接服務器。我已經解決了這個問題。

相關問題