sql-server - SQL Server 如何在特定时间自动触发查询

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

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

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

以下是祈祷时间表的详细信息:

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. 将您的查询放入存储过程,

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

  3. 如果间隔 <= 5 分钟,它将启动存储过程执行。

触发器和作业的方式。

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

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

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

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

关于sql-server - SQL Server 如何在特定时间自动触发查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39932379/

相关文章:

sql-server - 插入 catch block 导致错误 : The current transaction cannot be committed and cannot support operations that write to the log file

sql-server - 将 XML 显式查询设置为变量

c# - 如何使用 C# 代码获取可用 SQL Server 的列表?

sql-server - 聚集索引默认排序顺序

sql - Powershell:将文件路径指定为变量

sql-server-2008 - 如何查找调用给定存储过程的所有 SQL 代理作业

c# - Asp.net MVC SQL Server 连接返回空

sql - T-SQL : How to select one column or in alternative another one?

c# - 从 sql server 存储过程返回多个数据集

在 SQL Server 中插入日期时间的 SQL 查询