जब एक संग्रहित प्रो में गतिशील एसक्यूएल का उपयोग करने के लिए मजबूर किया जाता है, तो हम निम्न कार्य करते हैं। डिबग का एक इनपुट वेरिएबल जोड़ें जो थोड़ा सा क्षेत्र है। यदि यह 0 है, तो निष्पादन स्टेटमेंट प्रोसेस होगा यदि यह 1 है तो आपको इसके बजाय एक प्रिंट स्टेटमेंट मिलेगा। मेरा सुझाव है कि आप डीबग करने के समान कुछ करें। निष्पादित करने के बजाय, अपने एसक्यूएल के परिणामों को प्रिंट करें या संभवतः एसक्यूएल को एक टेबल में डालें क्योंकि ऐसा लगता है कि यह लूप में हो रहा है। फिर आप उस एसक्यूएल को देख सकते हैं जिसे बनाया गया था और देखें कि यह कहां गलत हुआ।
Declare debug bit
set debug = 1
...
if debug = 1 Begin Print @SQL End
Else
Begin Exec (@sql) End
वैकल्पिक रूप से
mydynamiccode_logging नामक एक तालिका बनाएं (एक sql कॉलम के साथ अधिकतम sql स्टेटमेंट के समान लंबाई, एक रनडेट कॉलम और जो भी अन्य कॉलम आपको आवश्यक लग सकते हैं (मैं sql स्टेटमेंट, उपयोगकर्ता, एप्लिकेशन को बनाने के लिए उपयोग किए जाने वाले इनपुट चर पर विचार करूंगा) यदि एक से अधिक लोग इस कोड का उपयोग करते हैं)
निष्पादन स्टेटमेंट चलाने से पहले कुछ इस तरह चलाएं:
insert mydynamiccode_logging (sql, rundate)
values (@sql, getdate())
अब आप डिबग बिट फ़ील्ड भी जोड़ सकते हैं और केवल तभी लॉग इन कर सकते हैं जब आपने इसे डिबग मोड में बदल दिया हो या आप हमेशा लॉग इन कर सकते हों, यह सिस्टम पर निर्भर करता है और इसे करने में कितना अतिरिक्त समय लगता है और बाकी सिस्टम कितना स्लो हो जाता है। आप लॉगिंग करके उत्पादन को महत्वपूर्ण रूप से धीमा नहीं करना चाहते हैं।