2011-03-25 7 views
20

क्या माइक्रोसॉफ्ट एसक्यूएल सर्वर प्रबंधन स्टूडियो (एसक्यूएल सर्वर 2008 आर 2) में किसी क्वेरी के परिणाम को स्वचालित रूप से रीफ्रेश करने का कोई तरीका है?एमएस एसक्यूएल सर्वर प्रबंधन स्टूडियो में एक क्वेरी स्वचालित रूप से रीफ्रेश करें?

वर्तमान में मैं एक ऐसे एप्लिकेशन को डिबग कर रहा हूं जो स्वचालित रूप से डेटाबेस में डेटा डालने और अपडेट करता है और मैं 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 की ऊपरी सीमा के बिना? –

+1

@ सचिन शानभाग, आपको 'गिनती' की आवश्यकता है, इसलिए यह लूप, देखें [जाओ (ट्रांजैक्ट-एसक्यूएल)] (http://msdn.microsoft.com/en-us/library/ms188037.aspx)। 'गिनती 'एक int है, इसलिए यह काफी बड़ा हो सकता है: 2,147,483,647। तो बस 'जाओ 2147483647' – RacerX

+1

का उपयोग करें, लेकिन आपको बफर को फ्लश करने की आवश्यकता है। 'Waitfor' से पहले' raiserror ('', 0,1) अब के साथ 'जोड़ें' जोड़ें। –

7

केवल एक चीज मैं उस के बारे में सोच सकते हैं एसएसएमएस से उत्साहित रूप से ऐसा होगा WAITFOR विकल्प के साथ एक लूप होगा। समस्या यह है कि आपकी आउटपुट क्वेरी विंडो में केवल कई परिणाम सेट होंगे, प्रत्येक एक बाद में आपकी प्रक्रिया में इससे पहले की तुलना में।

इस स्थिति में मैं आमतौर पर एक साधारण वेब पेज बनाने का सुझाव देता हूं जो आपकी मशीन पर स्थानीय रूप से चलता है। इसे एक प्रश्न लेने के लिए बनाएं, और प्रत्येक अंतराल (30-60-90 सेकेंड) को स्वतः रीफ्रेश करने के लिए सेट करें।

लेकिन यह एसएसएमएस के बाहर होगा।

+1

+1 यह वास्तव में एक अच्छा मुद्दा है। मुझे याद है कि 100 परिणाम की सीमा हो सकती है या ऐसा कुछ हो सकता है। (संपादित करें: शायद वह 2005 था मैंने देखा कि।) –

+0

मैंने बिना किसी समस्या के कई परिणाम सेट के लिए मेरे उत्तर में एक ही सेटअप चलाया है। मैं पाठ मोड में चलाता हूं, और एकमात्र समस्या कॉपी/पेस्ट मेमोरी सीमा है। यदि मैं बड़े परिणाम सेट की अपेक्षा करता हूं, तो मैं आउटपुट को एक फ़ाइल में चलाता हूं, आप इसे संपादित कर सकते हैं क्योंकि यह देखने के लिए बढ़ता है कि इसमें क्या हो रहा है। – RacerX

+0

एक लूप में WAITFOR एक अच्छा सुझाव है, लेकिन "एसओ 1000" रिकक्सेस का उपयोग करके मेरी एसक्यूएल क्वेरी को कम करने वाली कम लाइनें। (इस मामले के लिए एक वेबपृष्ठ भी अधिक होगा) – grimmig

संबंधित मुद्दे