【问题标题】:Send an email to current user in SQL Server Agent job when job fails作业失败时向 SQL Server 代理作业中的当前用户发送电子邮件
【发布时间】: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_USERSELECT SUSER_NAME() 一样给我当前用户并将其用作外发电子邮件地址。

【问题讨论】:

  • 这是否意味着,作业没有按计划自动化,只有用户可以手动运行作业?
  • 您能否进一步阐明用户登录是什么意思
  • @TheGameiswar Job 是自动化的,每半小时运行一次。例如,如果我在工作中将我的姓名添加为电子邮件收件人,而明天有 5 个不同的人设置了请求,那么我将收到一封电子邮件。我希望其他 5 人收到电子邮件。有意义吗?
  • 设置请求是什么意思?
  • @TheGameiswar 用户可以设置 DailyWeekly 选项以从 UI 触发认证查询。我将开始日期、开始时间和希望执行的时间存储在表中。我有一个stored procedure,它检查条件并从table 中选择记录(如果它符合条件)。 SQL job 将每半小时执行一次 stored procedure。如果工作失败,则向人员发送电子邮件。

标签: sql-server email sql-server-agent


【解决方案1】:

我认为您很困惑,如果一个用户将手动启动该作业,那么您使用STORE PROCEDURE 并且在那里您可以获得connected user 信息。

pgAgent 将自动运行进程并使用您在作业中设置的USER 运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多