【发布时间】:2016-03-03 00:10:43
【问题描述】:
我有一个SQL Job,如果作业失败,我想在其中发送电子邮件警报。我知道对于这个功能我必须Configure Database Mail 而不是Adjust the properties within the SQL Server Agent。这篇文章提供了很好的细节http://www.sherweb.com/blog/how-to-set-up-database-mail-for-sql-server-job-failures/。
我想要的是,我不想为特定用户(如person1@test.com)设置电子邮件地址,而是想向当前用户发送电子邮件。这样,曾经登录数据库并运行作业的人都会收到作业失败的电子邮件。
如我所见,这种方法有两个好处, 一世。一个特定的用户不会被电子邮件淹没。 ii.曾经运行过该作业的人都可以知道该作业已失败。
例如,
如果我设置person1@test.com 并且person2 登录而不是工作失败,person1 将收到一封电子邮件。我不想要那个。有什么方法可以在SQL Server Agent Job 设置中做到这一点。如果没有,我怎么能做到这一点?
像SELECT SYSTEM_USER 或SELECT SUSER_NAME() 一样给我当前用户并将其用作外发电子邮件地址。
【问题讨论】:
-
这是否意味着,作业没有按计划自动化,只有用户可以手动运行作业?
-
您能否进一步阐明用户登录是什么意思
-
@TheGameiswar Job 是自动化的,每半小时运行一次。例如,如果我在工作中将我的姓名添加为电子邮件收件人,而明天有 5 个不同的人设置了请求,那么我将收到一封电子邮件。我希望其他 5 人收到电子邮件。有意义吗?
-
设置请求是什么意思?
-
@TheGameiswar 用户可以设置
Daily或Weekly选项以从 UI 触发认证查询。我将开始日期、开始时间和希望执行的时间存储在表中。我有一个stored procedure,它检查条件并从table中选择记录(如果它符合条件)。SQL job将每半小时执行一次stored procedure。如果工作失败,则向人员发送电子邮件。
标签: sql-server email sql-server-agent