如何使用存储过程轮询数据库?

时间:2011-06-03 16:35:07

标签: sql sql-server-2008 stored-procedures

使用存储过程,如何每15分钟(可能更长)轮询一个表?根据轮询发现的内容,我将把数据插入到另一个表中。

2 个答案:

答案 0 :(得分:2)

您应该每隔15分钟使用SQLAgent或某个调度程序运行该过程 存储过程是一个事务。你不希望一个程序只是循环/等待。

您是否有理由不想使用触发器?

答案 1 :(得分:1)

在我看来,这不是存储过程的真正工作。这听起来更像是SQL Agent。

也就是说,你可以运行一个使用WHILE循环和WAITFOR的存储过程,这应该是你想要做的。

WHILE (1=1)
BEGIN
    -- Check your table, etc.

    WAITFOR DELAY '00:15:00.000'
END

也可以使用UPDATE / INSERT触发器,然后您不必担心任何持续运行且可能失败的事情。