sp_send_dbmail
ストアド プロシージャの結果を実行し、csv ファイルとして電子メールに添付するように設定された SQL ジョブがあります。この仕事は 1 週間半前まで実行されていました。
完全な開示:その頃にストアドプロシージャに変更を加えました。ストアド プロシージャは、以前は 1 つのリンク サーバーのテーブルを参照していましたが、現在は別のリンク サーバーのテーブルを参照しています。
ジョブからコードを取り出してクエリ ウィンドウで正常に実行できます。また、ストアド プロシージャを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
テーブルを確認したところ、ジョブを手動で実行するたびに当日のメッセージがキューに入れられていないことがわかりました。その詳細が含まれていることを確認したかったのです。