2009-11-24 22 views
35

में संग्रहीत प्रक्रिया डीबगिंग SQL सर्वर 2008 पर संग्रहीत प्रक्रिया को डीबग करने का कोई तरीका है?एसक्यूएल सर्वर 2008

मेरे पास SQL ​​सर्वर प्रबंधन स्टूडियो 2008 और विजुअल स्टूडियो 2008 का उपयोग करने की सुविधा है (सुनिश्चित नहीं है कि यह कार्यक्षमता प्रदान करता है या नहीं)।

आम तौर पर मैं संग्रहीत प्रो को पारित पैरामीटर खोजने के लिए एसक्यूएल प्रोफाइलर का उपयोग करता हूं, हालांकि यह प्रक्रिया में कदम उठाने में सक्षम होना चाहती है कि यह कहां विफल हो रहा है।

क्या यह संभव है?

सबसे अच्छा तरीका क्या है? (बग्स के स्थान को तुरंत ढूंढने के मामले में)

उत्तर

33

वैसे जवाब पूरे समय मेरे सामने बस बैठा था।

SQL सर्वर प्रबंधन स्टूडियो 2008 में टूलबार में एक डीबग बटन है। एक क्वेरी विंडो में एक ब्रेक पॉइंट सेट करने के लिए चरणबद्ध करें।

मैंने शुरुआत में इस कार्यक्षमता को खारिज कर दिया क्योंकि मैंने संग्रहीत प्रक्रिया में कदम उठाने के बारे में नहीं सोचा था, जिसे आप आसानी से कर सकते हैं।

एसएसएमएस मूल रूप से एमएसडीएन वॉकथ्रू के साथ फिननके का उल्लेख करता है लेकिन स्वचालित रूप से करता है।

इतना आसान! आपकी मदद के लिए धन्यवाद फिननके।

संपादित करें: मुझे पैरामीटर के साथ संग्रहीत प्रक्रिया कॉल खोजने के लिए वहां एक कदम जोड़ना चाहिए, मैंने अपने डेटाबेस पर SQL प्रोफाइलर का उपयोग किया था।

+0

आह महान सामान, दुर्लभ अवसरों पर मैं डेटाबेस दिनचर्या डीबग करता हूं, यह आमतौर पर किसी एप्लिकेशन के संदर्भ में होता है - यह नहीं पता था कि आप इसे सीधे एसएसएमएस में कर सकते हैं। – FinnNk

+0

SQL सर्वर 2008 में कहीं भी बेक किए गए डिबगिंग के लिए एक और टूल उपयोगी है - आप रिकॉर्डिंग शुरू करते समय रिकॉर्ड की गई प्रक्रियाओं को रिकॉर्ड करना शुरू कर सकते हैं। मैं भूल गया कि इसे क्या कहा जाता है; अब के बारे में काफी आसान हो सकता है। –

+2

जीवन बचतकर्ता, आदमी !!! ;) –

16

हां आप कर सकते हैं (बशर्ते आपके पास दृश्य स्टूडियो का कम से कम पेशेवर संस्करण हो), हालांकि इसे करने के बाद इसे थोड़ा सेट अप करने की आवश्यकता है, यह डिबगिंग से बहुत अलग नहीं है कोड। MSDN has a basic walkthrough

+2

धन्यवाद FinnNk की जांच करें, लेकिन इस हमेशा के लिए ले जा रहा है जा रहा प्राप्त करने के लिए, के साथ साथ मैं सिर्फ डिबगिंग की अनुमति के लिए एक परियोजना करना होगा। मैरे बसकी बात नही हैं। – Russell

0

रिमोट डीबगिंग के लिए एक आवश्यकता यह है कि एसएसएमएस चलाने के लिए उपयोग किया जाने वाला विंडोज खाता sysadmin भूमिका का हिस्सा बनता है। हालांकि यह काम कर रहे डीबगिंग, खासकर अगर अपने खुद के विकास मशीन से एक दूरस्थ एसक्यूएल सर्वर पर डिबग एसक्यूएल करने की कोशिश कर पाने के लिए मुश्किल हो सकता है, http://msdn.microsoft.com/en-us/library/cc646024%28v=sql.105%29.aspx

4
  • हाँ: इस MSDN लिंक देखें।
  • पहले उदाहरण में मैं संभवतः सर्वर पर सीधे डीबगिंग करके काम कर रहा हूं, यदि संभव हो तो।
  • sysadmin अधिकार वाले खाते का उपयोग कर SQL सर्वर पर लॉग इन करें, या ऐसा करने के लिए अपने डीबीए से पूछें।
  • फिर, अपने स्वयं के Windows खाते के लिए, एक 'लॉगिन' एसक्यूएल सर्वर में बना अगर यह पहले से ही वहाँ नहीं है:

enter image description here

  • राइट-क्लिक करें खाता> गुण - यह सुनिश्चित

enter image description here

    0: उस लॉगिन 'sysadmin की भूमिका का एक सदस्य है
  • (यह भी सुनिश्चित करें कि खाता किसी भी डेटाबेस का 'मालिक' है जिसे आप स्क्रिप्ट डिबग करना चाहते हैं (उदा।संग्रहीत procs) के लिए:

enter image description here

  • फिर, अपने विंडोज खाते का उपयोग एसक्यूएल सर्वर पर सीधे प्रवेश करें।
  • विंडोज प्रमाणीकरण का उपयोग कर (सर्वर में प्रवेश करने खाते तुम सिर्फ उपयोग किया है का उपयोग करके) एसक्यूएल सर्वर के लिए लॉग इन
  • अब 'डिबग' एसक्यूएल प्रबंधन स्टूडियो में क्वेरी के रूप में आवश्यक breakpoints की स्थापना।

enter image description here

  • यहाँ डिबगिंग के लिए एक उपयोगी मार्गदर्शिका दी गई है:: आप F11 का उपयोग कर संग्रहीत procs में कदम कर सकते हैं

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-1.aspx

  • आप को दूर से डिबग की जरूरत है, तो एक बार जब आप यह हिस्सा काम कर लेंगे, तो आप रिमोट डीबगिंग सेट अप करने का प्रयास कर सकते हैं:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-2.aspx

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