[英]How do you send email with TSQL using a Agent Operator instead of an email address?
我有一些使用 sp_send_mail 发送电子邮件的自定义审核进程。 我最近发现测试正在向每个人发送电子邮件,因为收件人地址被硬编码为变量值。 我宁愿使用运算符,这样我就不必更改从一个环境移动到下一个环境的代码。 我已经用谷歌搜索了,但这似乎不是一件事,除非我只是使用了错误的关键词。
使用 Operator 的正确 @recipients 值是多少,或者我应该一起使用不同的 proc 吗?
您肯定走在正确的轨道上,但您只需要根据运营商的名称检索运营商的 email 地址,如下所示:
DECLARE @OperatorName sysname = N'OnCallDBAs';
DECLARE @OperatorEmailAddress nvarchar(100)
= (SELECT email_address
FROM msdb.dbo.sysoperators
WHERE [name] = @OperatorName);
IF @OperatorEmailAddress IS NOT NULL
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = @OperatorEmailAddress,
@body = 'The stored procedure finished successfully.',
@subject = 'Automated Success Message';
END;
希望有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.