質問

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分間、または何らかの合理的な頻度)が起きて、キューテーブルにある新しいデータのメールを送信する仕事をすることをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません dba.stackexchange
scroll top