使用SQL Server Service Broker在特定时间段后调用存储过程进行调度



我有一个表,每次员工打卡或下班时都会在其中插入数据。当插入数据时,另一个表将被更新。目前,我正在使用一个存储过程来执行此操作,该存储过程通过计划的SQL Server Agent作业每分钟运行一次。

它工作得很好,但是在非高峰时间每分钟运行一次是没有必要的。

是否有一种方法,使存储过程运行每分钟只有当数据插入到表?触发器可能无法工作,因为我不希望存储过程在插入后立即运行,而是在指定的间隔(如一分钟左右)之后运行,以便我可以一次更新多个punch。

您只需要跟踪最后一次扫描,并且只在有工作要做时才运行例程。一分钟可以进行轮询。您唯一需要做的就是保存最后一次扫描日期,并与打孔/输入时间进行比较。但是,请注意,您的逻辑必须能够处理错误的最后扫描日期,例如,它被意外地更改为一年前。

最新更新