我有一個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
表,發現沒有消息排隊當天每次我手動運行的工作,想確保我包括該細節。
兩臺鏈接的服務器有什麼區別?他們都是SQL Server,還是其他的?鏈接服務器上的權限是否相同? – Pondlife
作業運行的服務器和鏈接的服務器都是SQL服務器。我相信這份工作是由NT AUTHORITY \ SYSTEM在兩臺服務器上擁有相同的權限執行的。 – morris295
剛剛在我的原始答覆後再次檢查時,NT AUTHORITY \ SYSTEM用戶實際上沒有在鏈接服務器上擁有適當的權限。感謝您指出我的方式! – morris295