如何在SQL Server中的特定时间自动触发查询

时间:2016-10-08 12:31:41

标签: sql-server sql-server-2008 tsql scheduled-tasks

如何在下次祷告前5分钟使用自动触发器运行此查询?

SELECT 
    DATEADD(minute, -5, (SELECT TOP 1 TIME 
                         FROM prayertimes 
                         WHERE Time > sysdatetime())) AS TIME

以下是prayertimes表的详细信息:

Id  P_id  TIME
---------------------------------
698  3    2016-10-08 15:31:00.000
699  4    2016-10-08 18:02:00.000
700  5    2016-10-08 19:32:00.000
701  1    2016-10-09 04:59:00.000
702  2    2016-10-09 12:08:00.000
703  3    2016-10-09 15:30:00.000
704  4    2016-10-09 18:02:00.000
705  5    2016-10-09 19:32:00.000

我们说下一个日期时间是2016-10-08 15:31:00.000

然后我想在2016-10-08 15:26:00.000自动触发查询。

任何存储过程?

由于

1 个答案:

答案 0 :(得分:2)

与工作的方式:

  1. 将您的查询存入存储过程

  2. 创建一个每分钟(或30秒)检查间隔DATEDIFF(minute,GETDATE(),<next pray time>)的作业,

  3. 如果interval =&lt; = 5分钟,它将启动存储过程执行。

  4. 触发器和工作的方式。

    1. 在更新,插入,删除时创建触发器以保持计划更新,

    2. 创建一个将启动查询的作业

    3. 您在第一步创建的触发器将为此作业创建一个计划,

    4. 如果对表进行了一些更改,则触发器应更新作业计划。