使用SQL Server触发器发送电子邮件收件人的电子邮件地址根据客户端是动态的

问题描述

我需要创建一个触发器,以便在插入记录时向客户端发送电子邮件。客户的电子邮件位于同一数据库中的另一个表“ B”中,因此我将需要创建一个触发器,该触发器将从表“ B”中选择电子邮件地址,然后使用主键,我应该能够匹配两个表。 如何调用此表并将这些电子邮件提取到触发器中,并将其用作“收件人电子邮件”?

不同的客户使用不同的电子邮件,因此这些电子邮件是动态的吗? 谢谢

示例代码

-- Create an insert trigger
create trigger sendEmail on
tblvendTrans
for insert
as
 
DECLARE @sendEmail varchar(50);
DECLARE @PPL varchar(50);
DECLARE @PPL2 varchar(50);

select @PPL2 = (select strvendName FROM dbSample.dbo.tblvendors);
select @PPL = s.strvendName from inserted s;
Select @sendEmail = (select strEmail FROM dbSample.dbo.tblvendors WHERE @PPL= @PPL2);


EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Send Profile',@recipients = @sendEmail,@subject = 'Database Record Added',@body_format='HTML',@body =  @sendEmail,@attach_query_result_as_file = 0;
 
go

解决方法

您可以使用

msdb.dbo.sp_send_dbmail 

,对于参数@recipients,从另一个所需的表中选择您的电子邮件 对于@body参数,您可以动态创建它

我希望它对您有帮助