चूंकि यह कोड मूल रूप से विस्तारित संग्रहीत प्रक्रियाओं के साथ उपयोग किया गया था, ऐसा लगता है कि यह अप्रबंधित कोड है। अप्रबंधित कोड में बग आपकी प्रक्रिया को आसानी से बंद कर सकते हैं।
सीएलआर एकीकरण विस्तारित संग्रहीत प्रक्रियाओं की तुलना में बहुत अधिक मजबूत है, लेकिन कोड अभी भी प्रक्रिया में चलता है, इसलिए त्रुटियां SQL सर्वर को नीचे या भ्रष्ट कर सकती हैं। (तुलना के लिए, सिद्धांत रूप में, एक सुरक्षित सीएलआर रूटीन SQL सर्वर को भ्रष्ट करने में सक्षम नहीं होगा, हालांकि यह समस्याएँ भी पैदा कर सकता है जो SQL सर्वर को पूरी तरह से हटाए बिना आपके सर्वर की उपलब्धता को कम कर देता है।)
मूल रूप से, इस परिदृश्य में SQL सर्वर को क्रैश न करने के एकमात्र तरीके हैं:
- क्रैश होने वाली कार्यक्षमता का उपयोग करने से बचें।
- बग्गी कोड ठीक करें।
- कोड को एक अलग प्रक्रिया में चलाएँ (एक निष्पादन योग्य लॉन्च करें, एक विंडोज़ सेवा को कॉल करें, एक वेब सेवा को कॉल करें, आदि)। आप इस इंटरैक्शन को करने के लिए एक प्रबंधित .NET DLL लिख सकते हैं। सबसे अधिक संभावना है, आपको अभी भी इसे UNSAFE लोड करने की आवश्यकता होगी, लेकिन--अगर इसे ठीक से लिखा गया है--वास्तव में यह काफी सुरक्षित हो सकता है।