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,级别16,状态1,状态1,Server BK00SQL0002,LINE 1,LINE 1,LINE 1,LINE 1,LINE 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'
有帮助吗?

解决方案

您无法从扳机外部引用插入的伪表。您是否真的想为每个插入/更新发送电子邮件?并使调用扳机的交易等待所有发生的事情(即使数据库邮件是异步的,它不是免费的)?

我建议您将数据记录到队列表中,并有一项工作,每分钟(或五分钟或某种合理的频率)醒来,并发送邮件以获取在队列表中发现的任何新数据。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top