2011-03-25 57 views
20

有沒有辦法在Microsoft SQL Server Management Studio(SQL Server 2008 R2)中自動刷新查詢結果?在ms sql server management studio中自動刷新查詢?

目前我正在調試一個應用程序,該應用程序會自動在數據庫中插入和更新數據,並且我想跟蹤進度而不必在F5鍵上放置重物。

回答

40

試試這個:

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 

它將運行查詢5次,每次運行之間的10秒暫停

輸出:

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秒運行一次,沒有5的上限會怎麼樣? – 2011-03-25 15:09:12

+1

@Sachin Shanbhag,你需要'count'來循環,參見[GO(Transact-SQL)](http://msdn.microsoft.com/en-us/library/ms188037.aspx)。 「count」是一個整數,所以它可以很大:2,147,483,647。所以只需使用'GO 2147483647' – RacerX 2011-03-25 15:12:30

+1

但是你需要刷新緩衝區。在waitfor之前添加'nowait'的raiserror('',0,1)。 – 2011-03-25 15:15:08

7

我能想到的唯一的事情將會從SSMS那裏得到一個WAITFOR選項的循環。問題是你的輸出查詢窗口只會有多個結果集,每個結果集在你的過程中比在它之前的每個結果集都要晚。

在這種情況下,我通常建議構建一個簡單的網頁,從本地機器上運行。構建它以進行查詢,並將其設置爲每間隔(30-60-90秒)自動刷新。

但是那將在SSMS之外。

+1

+1這實際上是一個好點。我似乎記得可能有100個結果集限制或類似的東西。 (編輯:也許這是2005年,我看到了。) – 2011-03-25 15:30:03

+0

我運行了相同的安裝程序,因爲我的答案很多很多結果集沒有問題。我在文本模式下運行,唯一的問題是複製/粘貼內存限制。如果我期待大型結果集,我將輸出運行到一個文件中,您可以隨着它的增長對其進行編輯,以瞭解其中發生了什麼。 – RacerX 2011-03-25 15:40:26

+0

WAITFOR在一個循環中是一個不錯的建議,但使用「GO 1000」requries少了一些干擾我的SQL查詢的行。 (也使一個網頁會對這種情況矯枉過正) – grimmig 2011-03-28 06:21:49

相關問題