SQL Server SP_SEND_DBMAILクエリエラー
-
16-10-2019 - |
質問
EXEC msdb.dbo.sp_send_dbmail
@recipients= 'test@test.com',
@copy_recipients = 'test@test.com',
@query = 'SELECT * FROM INSERTED',
@attach_query_result_as_file = 1,
@subject = 'Auto-Generated Deleted Item in Order Item Detail',
@body = 'Item has been deleted from Order Item Detail',
@body_format = 'HTML',
@importance = 'High'
上記のコードが実行されると、次のエラーが表示されます。
MSG 22050、レベル16、状態1、行0エラーフォーマットクエリ、おそらく無効なパラメーターMSG 14661、レベル16、状態1、手順SP_SEND_DBMAIL、行495クエリの実行に失敗した:MSG 208、レベル16、状態1、サーバーBK00SQL0002、行1無効なオブジェクト名「挿入」。
以下の動作:(挿入のために変更するにはどうすればよいですか?)
EXEC msdb.dbo.sp_send_dbmail
@recipients= 'test@test.com',
@copy_recipients = 'test@test.com',
@query = 'SELECT * FROM [PreMfg].[dbo].[Order Item Detail Audit]',
@subject = 'An Item Has Been Deleted From the Order Item Detail Table',
@attach_query_result_as_file = 1,
@body = 'An Item Has Been Deleted From the Order Item Detail Table',
@body_format = 'HTML',
@importance = 'High'
解決
トリガーの外側から挿入された擬似テーブルを参照することはできません。そして、あなたは本当に挿入/アップデートごとに電子メールを送りたいですか?そして、トリガーを呼び起こしたトランザクションを行います。すべてが起こるのを待ちます(データベースメールは非同期であるにもかかわらず、無料ではありません)?
データをキューテーブルにログに記録し、毎分(または5分間、または何らかの合理的な頻度)が起きて、キューテーブルにある新しいデータのメールを送信する仕事をすることをお勧めします。
所属していません dba.stackexchange