2011-03-25 3 views
20

Microsoft SQL Server Management Studio (SQL Server 2008 R2)에서 쿼리 결과를 자동으로 새로 고치는 방법이 있습니까?ms SQL Server 관리 Studio에서 자동으로 쿼리를 새로 고치십니까?

현재 데이터베이스에 데이터를 자동으로 삽입하고 업데이트하는 응용 프로그램을 디버깅 중이므로 F5 키에 무거운 물체를 올려 놓지 않아도 진행 상황을 추적하고 싶습니다.

답변

40

이 시도 : 그것은 각 실행 사이에 10 초 동안 일시 중지, 쿼리 5 번 실행됩니다

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 

출력 :

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 - 상한선없이 10 초마다 실행하려면 어떻게해야합니까? –

+1

@Sachin Shanbhag, 루프가 발생하도록'count'가 필요합니다. [GO (Transact-SQL)] (http://msdn.microsoft.com/en-us/library/ms188037.aspx)를 참조하십시오. 'count'는 int이므로 꽤 클 수 있습니다 : 2,147,483,647. 그래서'GO 2147483647'을 사용하십시오 – RacerX

+1

하지만 버퍼를 플러시해야합니다. 'waitfor' 전에'nowait'과 함께'raiserror ('', 0,1)를 추가하십시오. –

7

내가 그 생각할 수있는 유일한 것은 SSMS에서 encyrely 할 경우 WAITFOR 옵션이있는 루프가됩니다. 문제는 출력 쿼리 창에 여러 개의 결과 집합이있는 것입니다. 각 결과 집합은 이전에 생성 된 결과 집합보다 나중에 처리됩니다.

이 상황에서 나는 보통 컴퓨터에서 로컬로 실행되는 간단한 웹 페이지를 작성하는 것이 좋습니다. 쿼리를 작성하여 간격 (30-60-90 초)마다 자동 새로 고침하도록 설정하십시오.

하지만 SSMS 외부에있을 것입니다.

+1

+1 실제로 좋은 지적입니다. 나는 거기에 100 resultset 제한이나 그 비슷한있을 수 있습니다 기억하는 것. (편집 : 어쩌면 2005 년에 그걸 봤어.) –

+0

문제없이 많은 결과 세트에 대한 내 대답과 동일한 설정을 실행했습니다. 텍스트 모드로 실행하고 유일한 문제는 복사/붙여 넣기 메모리 제한입니다. 큰 결과 집합을 예상하면 출력을 파일로 실행하고, 결과가 커지면서 편집 할 수 있으므로 그 결과를 볼 수 있습니다. – RacerX

+0

WAITFOR 루프에서 좋은 제안이지만 사용 "1000 번"requries 덜 SQL 쿼리를 어지럽히고 줄을 사용합니다. (이 경우 웹 페이지가 과도하게 작성 됨) – grimmig

관련 문제