sp_send_dbmail を使用してスケジュールされた SQL エージェント ジョブから電子メールを送信しようとすると、次のエラーが表示されます。
メッセージ 22050、レベル 16、状態 1、行 0 クエリのフォーマット エラー、おそらく無効なパラメーター メッセージ 14661、レベル 16、状態 1、プロシージャ sp_send_dbmail、行 504 クエリの実行に失敗しました: メッセージ 15404、レベル 16、状態 19、サーバー MyServer、行 1 Windows NT グループ/ユーザー 'MyDomain\sqlagent' に関する情報を取得できませんでした。エラー コード 0x5。
ジョブ ステップのコードは次のとおりです。
DECLARE @SQL NVARCHAR(400)
SELECT @SQL = 'SELECT COUNT(staff_id) FROM Staff'
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'me@myemail.com',
@subject = 'Email Alert',
@body = 'Test',
@query = @SQL,
@execute_query_database = 'MyDB'
SQL エージェントは、ドメイン アカウント [MyDomain\sqlagent] で実行されています。msdb の DatabaseMailUserRole のメンバーとして追加するだけでなく、MyDB データベースでこのユーザーに db_owner 権限を付与しました。まだ運がありません。@query および @execute_query_database パラメーターを削除すると、「テスト」メールが送信されます。ただし、クエリの結果を添付する必要があります。
どんな助けでも大歓迎です、ありがとう。