SQL Server每个时间间隔执行查询

时间:2013-09-23 19:36:38

标签: sql sql-server

我想每隔3秒在Management Studio中执行一次查询,以满足监控/维护需求。我知道我可以定义一个工作或使用外部应用程序。但我正在寻找更简单的东西。类似下面的伪:

DECLARE @Interval INT
SET @Interval = 3000 -- I'm expecting milliseconds
BEGINLOOP (@Interval)
    SELECT * FROM MyTransactions
ENDLOOP

我希望输出每3秒刷新一次。这可能吗?

3 个答案:

答案 0 :(得分:7)

您可以在循环中使用WAITFOR。您可以在WAITFOR语句中指定间隔时间。

这样的事情:

WHILE 1=1
BEGIN
   WAITFOR DELAY '00:00:05' -- Wait 5 seconds

   SELECT * FROM MyTransactions

   -- Break on some condition
END

答案 1 :(得分:0)

DECLARE @Interval INT;
SET @Interval = 3000;

DECLARE @Delay DATETIME;
SET @Delay = DATEADD(MILLISECOND, @Interval, 0);

DECLARE @i INT;
SET @i = 1;
WHILE @i <= 1000
BEGIN
    WAITFOR DELAY @Delay;

    PRINT @i; -- Do something

    SET @i = @i + 1;
END

答案 2 :(得分:0)

DECLARE @i INT = 1;

WHILE(@ i&lt; = 60)  开始   WAITFOR DELAY '00:00:05'

   /*Your Script*/

SET @i = @i + 1; 结束 打印'已完成'