0

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テーブルを確認したところ、ジョブを手動で実行するたびに当日のメッセージがキューに入れられていないことがわかりました。その詳細が含まれていることを確認したかったのです。

4

1 に答える 1

0

私はこれをもう少し深く調べました。Pondlifeはパーミッションの問題に関して正しい方向に進んでいました。彼への最初の返信の後、少し深く調べて、NT AUTHORITY\SYSTEMユーザーがリンクサーバーに適切にアクセスするように設定されていないことに気付きました。それ以来、私は問題を修正しました。

于 2012-11-21T18:31:40.607 に答える