TRY … ट्रांजैक्ट-एसक्यूएल में कैच स्टेटमेंट डेटाबेस अनुप्रयोगों में त्रुटि स्थितियों का पता लगाता है और संभालता है। यह कथन SQL सर्वर त्रुटि हैंडलिंग का आधारशिला है और मजबूत डेटाबेस अनुप्रयोगों को विकसित करने का एक महत्वपूर्ण हिस्सा है। कोशिश करें … कैच 2008 के साथ शुरू होने वाले SQL सर्वर पर लागू होता है, Azure SQL डेटाबेस, Azure SQL डेटा वेयरहाउस, और समांतर डेटा वेयरहाउस।
कोशिश कर रहा है … कैच
कोशिश करें … कैच आपको दो ट्रांजैक्ट-एसक्यूएल कथन निर्दिष्ट करने की अनुमति देकर काम करता है: एक जिसे आप "कोशिश" करना चाहते हैं और किसी अन्य त्रुटि को "पकड़ने" के लिए उपयोग करने के लिए उपयोग करना चाहते हैं। जब SQL सर्वर एक TRY का सामना करता है … कैच स्टेटमेंट, यह तुरंत TRY खंड में शामिल कथन निष्पादित करता है। यदि TRY कथन सफलतापूर्वक निष्पादित करता है, तो SQL सर्वर चालू होता है। हालांकि, यदि TRY कथन एक त्रुटि उत्पन्न करता है, तो SQL सर्वर गलती से त्रुटि को संभालने के लिए CATCH कथन निष्पादित करता है।
मूल वाक्यविन्यास इस फ़ॉर्म को लेता है:
कोशिश करो कथन ब्लॉक अंत कोशिश करोBEGIN कैचsql_statementअंत कैच ; उदाहरण के माध्यम से इस कथन के उपयोग को समझना आसान है। कल्पना करें कि आप एक मानव संसाधन डेटाबेस के व्यवस्थापक हैं जिसमें "कर्मचारी" नामक एक तालिका शामिल है जिसमें आपके संगठन के प्रत्येक कर्मचारी के बारे में जानकारी शामिल है। वह तालिका प्राथमिक कुंजी के रूप में एक पूर्णांक कर्मचारी आईडी संख्या का उपयोग करती है। आप अपने डेटाबेस में एक नया कर्मचारी डालने के लिए नीचे दिए गए कथन का उपयोग करने का प्रयास कर सकते हैं: कर्मचारियों में प्रवेश (आईडी, first_name, last_name, एक्सटेंशन)मूल्य (12497, 'माइक', 'चैपल', 4201)
सामान्य परिस्थितियों में, यह कथन कर्मचारी तालिका में एक पंक्ति जोड़ देगा। हालांकि, यदि आईडी 12497 वाला कर्मचारी पहले से ही डेटाबेस में मौजूद है, तो पंक्ति डालने से प्राथमिक कुंजी बाधा का उल्लंघन होगा और परिणामस्वरूप निम्न त्रुटि होगी: संदेश 2627, स्तर 14, राज्य 1, रेखा 1प्राथमिक कुंजी बाधा 'PK_employee_id' का उल्लंघन। ऑब्जेक्ट 'dbo.employees' में डुप्लिकेट कुंजी सम्मिलित नहीं कर सकता।बयान समाप्त कर दिया गया है।
हालांकि यह त्रुटि आपको समस्या का निवारण करने के लिए आवश्यक जानकारी प्रदान करती है, इसके साथ दो समस्याएं हैं। सबसे पहले, संदेश गुप्त है। इसमें त्रुटि कोड, रेखा संख्या और अन्य जानकारी शामिल है जो औसत उपयोगकर्ता के लिए समझ में नहीं आता है। दूसरा, और सबसे महत्वपूर्ण बात यह है कि यह बयान रद्द करने का कारण बनता है और एप्लिकेशन क्रैश का कारण बन सकता है।वैकल्पिक रूप से कथन को लपेटना है … कैच स्टेटमेंट, जैसा कि यहां दिखाया गया है: कोशिश करोकर्मचारियों में प्रवेश (आईडी, first_name, last_name, एक्सटेंशन)मूल्य (12497, 'माइक', 'चैपल', 4201)अंत कोशिश करोBEGIN कैचप्रिंट 'त्रुटि:' + ERROR_MESSAGE ();EXEC msdb.dbo.sp_send_dbmail@profile_name = 'कर्मचारी मेल',@recipients = '[email protected]',@body = 'एक नया कर्मचारी रिकॉर्ड बनाने में एक त्रुटि हुई।',@subject = 'कर्मचारी आईडी डुप्लिकेशन त्रुटि';अंत कैच
इस उदाहरण में, कोई भी त्रुटि जो उपयोगकर्ता को आदेश और [email protected] ई-मेल पता निष्पादित करने वाले दोनों को रिपोर्ट की जाती है। उपयोगकर्ता को दिखाए गए त्रुटि यह है: त्रुटि: प्राथमिक कुंजी बाधा 'PK_employee_id' का उल्लंघन। ऑब्जेक्ट 'dbo.employees' में डुप्लिकेट कुंजी सम्मिलित नहीं कर सकता।मेल कतारबद्ध
प्रोग्राम निष्पादन सामान्य रूप से जारी रहता है, जिससे प्रोग्रामर त्रुटि को संभालने की अनुमति देता है। TRY का उपयोग … कैच स्टेटमेंट SQL सर्वर डेटाबेस अनुप्रयोगों में होने वाली त्रुटियों को सक्रिय रूप से पहचानने और प्रबंधित करने का एक शानदार तरीका है। यदि आप संरचित क्वेरी भाषा के बारे में और जानना चाहते हैं, तो एसक्यूएल के लिए परिचय देखें। कोशिश करो … कैच उदाहरण
और अधिक सीखना




