2013-09-23 3 views
1

Я хотел бы выполнить запрос в Management Studio каждые 3 секунды для мониторинга/обслуживания. Я знаю, что могу определить работу или использовать внешнее приложение. Но я ищу что-то гораздо более простое. Что-то вроде следующего псевдо:SQL Server Выполнение запроса каждый интервал

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

Я хотел бы, чтобы выход обновлялся каждые 3 секунды. Это возможно?

ответ

4

Вы можете использовать WAITFOR в цикле. Вы должны указать интервал времени в инструкции WAITFOR.

Что-то вроде этого:

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

    SELECT * FROM MyTransactions 

    -- Break on some condition 
END 
+0

Это должен быть ответ. Однако выход не освежает, он добавляет к предыдущему результату. Можем ли мы избежать этого? – yazanpro

+0

Вы можете вставить эти строки в таблицу (если количество ~ маленькое), и при необходимости кто-то может запросить эту таблицу. –

+0

Попробуйте добавить GO после оператора Select. Не уверен, что это заставит всплывать, но может. Вы также можете отправить вывод запроса во временную таблицу и запросить временную таблицу через другое соединение в SSMS. –

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 
0

DECLARE @i INT = 1;

While (@i < = 60) НАЧАТЬ WAITFOR ЗАДЕРЖКИ '00: 00: 05'

/*Your Script*/ 

SET @i = @i + 1; END Печать 'завершена'

+0

уточните свой ответ –

Смежные вопросы