繁体   English   中英

如何使用代理操作员而不是 email 地址发送 email 和 TSQL?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM