6

監視/メンテナンスのニーズのために、Management Studio で 3 秒ごとにクエリを実行したいと考えています。ジョブを定義したり、外部アプリケーションを使用したりできることを知っています。しかし、私はもっとシンプルなものを探しています。次の擬似のようなもの:

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

出力を 3 秒ごとに更新したいと思います。それは可能ですか?

4

4 に答える 4

10

ループで WAITFOR を使用できます。WAITFOR ステートメントでインターバル時間を指定します。

このようなもの:

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

   SELECT * FROM MyTransactions

   -- Break on some condition
END
于 2013-09-23T19:38:59.770 に答える
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
于 2013-09-23T19:39:11.613 に答える
0
DECLARE @i INT = 1;

WHILE (@i <= 60)
 BEGIN
  WAITFOR DELAY '00:00:05'

       /*Your Script*/

 SET  @i = @i + 1;
END 
print 'completed'
于 2017-01-29T05:21:31.377 に答える