Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर त्रुटि प्रबंधन:अपवाद और डेटाबेस-क्लाइंट अनुबंध

वैसे मैं एक क्लाइंट कोड बंदर हूं जो डेटाबेस से बहुत संबंधित है। यहां बताया गया है कि मैं इसे कैसे संभालता हूं।

SQL में होने वाले अपवाद (raiseerrors) कॉलर को वापस प्रचारित हो जाते हैं। इसमें रेफरी की कमी, अद्वितीय सूचकांक उल्लंघन, अधिक गंभीर मुद्दे आदि शामिल होंगे। मूल रूप से कुछ भी जो डेटा संचालन को सामान्य रूप से नहीं करेगा, उसे वापस प्रचारित किया जाना चाहिए।

कॉलर C# के पास यह होना चाहिए:

catch (SQLException sqlEx)

और फिर आवश्यकतानुसार अपवाद को संभालें। उनके पास एक विशिष्ट SQLException हैंडलर होना चाहिए। यह महत्वपूर्ण है।

मैं आम तौर पर आउटपुट पैरामीटर से दूर रहता हूं क्योंकि मुझे लगता है कि वे डेटा से संबंधित हैं और कोई त्रुटि संदेश नहीं है, इसके अतिरिक्त मैं SQL सर्वर त्रुटि कोड के अपवाद का निरीक्षण कर सकता हूं, इसलिए हमें आवश्यक सभी डेटा उस अपवाद में होना चाहिए।

इसके अतिरिक्त, SQL सर्वर के साथ कुछ मामलों में, हमारे पास संग्रहीत कार्यविधियाँ हैं जो "व्यावसायिक प्रकार के अपवाद" बढ़ा सकती हैं। उन मामलों में हम एक कस्टम त्रुटि संख्या (50000 से ऊपर) जोड़ते हैं और जरूरत पड़ने पर उस त्रुटि को संग्रहीत कार्यविधि में बढ़ाते हैं। सामान्य तौर पर हम इन्हें कम से कम रखने की कोशिश करते हैं क्योंकि यह जटिलता जोड़ता है, लेकिन कुछ मामलों में, हमने उन्हें आवश्यक पाया है।

अब, चूंकि क्लाइंट SQLException को पकड़ रहा है, वे अपवाद में SQL सर्वर द्वारा लौटाए गए त्रुटि कोड को देख सकते हैं और फिर अपवाद पकड़े जाने पर कोई विशेष कार्रवाई (यदि आवश्यक हो) कर सकते हैं और त्रुटि संख्या एक निश्चित मान है। यह त्रुटि कोड के आधार पर त्रुटि प्रबंधन के द्वितीयक स्तर की अनुमति देता है यदि यह कस्टम त्रुटियों (>50000) के लिए आवश्यक है।

यह डीबीए को कस्टम त्रुटियों को बढ़ाने की अनुमति देता है और क्लाइंट कोड के पास उनसे निपटने का एक सुसंगत तरीका है। तब DBA को क्लाइंट कोड मंकी को बताना होगा कि कस्टम त्रुटियाँ क्या थीं ताकि वे उनके लिए तैयारी कर सकें।

मैं आमतौर पर त्रुटि प्रबंधन उद्देश्यों के लिए रिटर्न कोड का उपयोग नहीं करता, हालांकि मैं देख सकता हूं कि उनका उपयोग कैसे किया जा सकता है, लेकिन इसका मतलब है कि कोड बंदर परत में अधिक तर्क को देखने और रिटर्न कोड से निपटने के लिए। अगर वे एक समस्या हैं, तो मैं एक अपवाद वापस चाहता हूं, क्योंकि तब मैं उनसे लगातार निपट सकता हूं। अगर मुझे रिटर्न कोड भी देखना है, तो अब त्रुटि प्रबंधन के कई रास्ते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टी-एसक्यूएल में निराशावादी ताला

  2. SQL सर्वर 2008 प्रबंधन स्टूडियो Intellisense क्यों काम नहीं कर रहा है?

  3. SQL सर्वर में एक लिंक्ड सर्वर लॉगिन जोड़ें (T-SQL उदाहरण)

  4. केवल SQL का उपयोग करके SQL सर्वर 2005 छवि फ़ील्ड में चित्र सम्मिलित करें

  5. एसएसआरएस - Group_Concat एक अभिव्यक्ति का उपयोग कर समतुल्य?