2011-03-25 22 views
20

Microsoft SQL Server Management Studio'da (SQL Server 2008 R2) bir sorgunun sonucunu otomatik olarak yenilemenin bir yolu var mı?Ms sql sunucu yönetim stüdyosunda bir sorguyu otomatik olarak yenile?

Şu anda veriyi bir veritabanına otomatik olarak ekleyen ve güncelleştiren bir uygulamada hata ayıklamaktayım ve F5 anahtarında ağır bir nesne bırakmak zorunda kalmadan ilerlemeyi izlemek istiyorum.

cevap

40

bu deneyin: Bu akışlar arasında 10 saniye durarak sorgu 5 kez çalışacak

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 

çıkışı:

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 - Her 10 saniyede bir, 5 üst limit olmadan çalışmasını istiyorsan ne olur? –

+1

@Sachin Shanbhag, bir "say" a ihtiyaç duyarsınız, yani döngülere bakın [GO (Transact-SQL)] (http://msdn.microsoft.com/en-us/library/ms188037.aspx). 'Say' bir int, bu yüzden oldukça büyük olabilir: 2,147,483,647. Yani sadece GO 2147483647' – RacerX

+1

kullanın. Ancak arabelleği temizlemeniz gerekiyor. 'Waitfor'dan önce' raiserror ('', 0,1) 'yi şimdi ekleyin. –

7

O düşünebilirsiniz tek şey Bunu, SSMS'den en az WAITFOR seçenekli bir döngü olurdu. Sorun, çıktı sorgu pencerenizin basitçe birden fazla sonuç kümesine sahip olacak, her biri daha sonra işleminize daha önce olandan daha fazla sonuç kümesine sahip olacak.

Bu durumda, genellikle makinenizden yerel olarak çalışan basit bir web sayfası oluşturmayı öneririm. Bir sorguyu almak için oluşturun ve her aralığını (30-60-90 saniye) otomatik olarak yenilemek üzere ayarlayın.

Ancak bu SSMS dışında olur.

+1

+1 Bu aslında iyi bir nokta. 100 sonuç sınırı veya böyle bir şey olabileceğini hatırlıyorum. (Düzenleme: Belki de 2005'te bunu gördüm.) –

+0

Birçok çok sayıda sonuç kümesi için sorunum olmadan aynı kurulumu çalıştırıyorum. Metin modunda çalışıyorum ve tek sorun kopyala/yapıştır bellek limitleri. Büyük sonuç kümeleri beklersem, çıktıyı bir dosyaya koyarım, içinde olup biteni görmek için büyüdükçe düzenleyebilirsiniz. Bir döngü içinde – RacerX

+0

WAITFOR güzel bir öneri, ancak "GO 1000" requries kullanarak benim SQL sorguyu dağınık daha az satır. (ayrıca bir web sayfasının bu durum için fazla olması gerekir) – grimmig

İlgili konular