代码之家  ›  专栏  ›  技术社区  ›  chris

一旦达到某个阈值,如何执行触发器?

  •  1
  • chris  · 技术社区  · 14 年前

    我有一个Web应用程序,它将无效的登录尝试记录到数据库表中。

    有没有一种方法可以在表上创建触发器,该触发器只在最近几个小时内创建了一定数量的记录之后运行,而不是像这样 if count(*) > 100 ?

    如果登录尝试失败的次数异常,最终目标是发送电子邮件。

    4 回复  |  直到 14 年前
        1
  •  1
  •   SQLMenace    14 年前

    为什么触发器?创建每N分钟运行一次的SQL代理作业。如果在最后一个小时内有超过100次无效的登录尝试,如果这是真的,运行一个包含详细信息的数据库邮件过程,请查找 sp_send_dbmail

        2
  •  1
  •   Jon Hanna    14 年前

    创建一个针对每个案例运行的触发器,并让它查看是否满足进一步操作的条件。如果不需要继续执行操作(例如,在过去一小时内尝试102次),您可以在另一个表中记录上次执行此类操作的时间,然后制定标准,使其必须为每小时100次失败尝试,并且必须是自上次执行此类操作以来的一个小时。

        3
  •  1
  •   HLGEM    14 年前

    不要用扳机来做这件事。创建一个作业来监视过去一小时内登录失败的次数,并在超过某个阈值时发送电子邮件。每小时运行一次。

        4
  •  0
  •   Giorgi    14 年前

    你不能。最好的选择是把支票放在触发器内部。