2011-03-25 14 views

Respuesta

40

probar esto:

SELECT GETDATE()    --your query to run 
raiserror('',0,1) with nowait --to flush the buffer 
waitfor delay '00:00:10'  --pause for 10 seconds 
GO 5       --loop 5 times 

se ejecutará la consulta 5 veces, haciendo una pausa durante 10 segundos entre cada ejecución

de salida:

Beginning execution loop 

----------------------- 
2011-03-25 11:03:57.640 

(1 row(s) affected) 


----------------------- 
2011-03-25 11:04:07.640 

(1 row(s) affected) 


----------------------- 
2011-03-25 11:04:17.640 

(1 row(s) affected) 


----------------------- 
2011-03-25 11:04:27.640 

(1 row(s) affected) 


----------------------- 
2011-03-25 11:04:37.640 

(1 row(s) affected) 

Batch execution completed 5 times. 
+1

@RacerX - ¿Y si desea que se ejecute cada 10 segundos, sin límite superior de 5? –

+1

@Sachin Shanbhag, necesita 'conteo' para que se repita, vea [IR (Transact-SQL)] (http://msdn.microsoft.com/en-us/library/ms188037.aspx). El 'count' es un int, por lo que puede ser bastante grande: 2,147,483,647. Así que solo use 'GO 2147483647' – RacerX

+1

Pero necesita vaciar el buffer. Agregue 'raiserror ('', 0,1) con nowait' antes de' waitfor'. –

7

La única cosa que puedo pensar en eso haría eso en forma estricta desde SSMS sería un bucle con una opción WAITFOR. El problema es que su ventana de consulta de salida simplemente tendrá múltiples conjuntos de resultados, cada uno más adelante en su proceso que el anterior.

En esta situación lo general sugieren la construcción de una página web sencilla que va desde localmente en su equipo. Constrúyalo para realizar una consulta y configúrelo para que se actualice automáticamente cada intervalo (30-60-90 segundos).

Pero eso sería fuera de SSMS.

+1

+1 Ese es un buen punto en realidad. Me parece recordar que puede haber un límite de 100 resultados o algo así. (Editar: Tal vez fue 2005 lo vi en.) –

+0

He ejecutado la misma configuración que en mi respuesta para muchos conjuntos de resultados sin problema. Sí corro en modo texto, y el único problema es copiar/pegar límites de memoria. Si espero grandes conjuntos de resultados, ejecuto el resultado en un archivo, puede editarlo a medida que crece para ver qué está sucediendo en él. – RacerX

+0

WAITFOR en un bucle es una buena sugerencia, pero el uso de "GO 1000" requiere menos líneas que saturan mi consulta SQL. (también hacer una página web sería excesivo para este caso) – grimmig

Cuestiones relacionadas