TRY … Transact-SQL లో CATCH స్టేట్మెంట్ గుర్తించి డేటాబేస్ అనువర్తనాలలో లోపం పరిస్థితులను నిర్వహిస్తుంది. ఈ ప్రకటన SQL సర్వర్ లోపం నిర్వహణ యొక్క మూలస్తంభంగా ఉంది మరియు బలమైన డేటాబేస్ అనువర్తనాలను అభివృద్ధి చేయడం యొక్క ఒక ముఖ్యమైన భాగం. TRY … CATCH ప్రారంభించి SQL సర్వర్ వర్తిస్తుంది 2008, Azure SQL డేటాబేస్, అజూర్ SQL డేటా వేర్హౌస్, మరియు సమాంతర డేటా వేర్హౌస్.
TRY పరిచయం … క్యాచ్
TRY … CATCH మీరు రెండు ట్రాన్సాక్ట్- SQL స్టేట్మెంట్లను పేర్కొనడం ద్వారా పనిచేస్తుంది: మీరు "ప్రయత్నించండి" మరియు మరొక ఉద్భవించే ఏ లోపాలు "క్యాచ్" ఉపయోగించడానికి మరొక. SQL సర్వర్ ఒక TRY కలుసుకున్నప్పుడు … CATCH ప్రకటన, ఇది వెంటనే TRY నిబంధనలో చేర్చబడిన ప్రకటన అమలు. TRY స్టేట్మెంట్ విజయవంతంగా అమలు చేస్తే, SQL Server కదులుతుంది. అయితే, TRY స్టేట్మెంట్ లోపం ఏర్పడినట్లయితే, SQL సర్వర్ సరళంగా దోషాన్ని నిర్వహించడానికి CATCH ప్రకటనను అమలు చేస్తుంది.
ప్రాథమిక సింటాక్స్ ఈ ఫారమ్ను తీసుకుంటుంది:
ప్రయత్నించండి TRY ప్రకటన బ్లాక్ TRY ENDBEGIN క్యాచ్sql_statementక్యాచ్ ముగుస్తుంది ; ఈ ఉదాహరణ యొక్క ఉపయోగాన్ని ఒక ఉదాహరణ ద్వారా అర్థం చేసుకోవడం సులభం. మీ సంస్థలోని ప్రతి ఉద్యోగుల గురించి సమాచారాన్ని కలిగి ఉన్న "ఉద్యోగులు" అనే పట్టికను కలిగిన మానవ వనరుల డేటాబేస్ యొక్క నిర్వాహకుడు అని ఇమాజిన్ చేయండి. ఆ పట్టిక ప్రాధమిక కీ వలె పూర్ణ సంఖ్యలో ఉద్యోగి ID సంఖ్యను ఉపయోగిస్తుంది. మీరు మీ డాటాబేస్లో కొత్త ఉద్యోగిని చేర్చడానికి దిగువ స్టేట్మెంట్ను ఉపయోగించేందుకు ప్రయత్నించవచ్చు: INSERT INTO ఉద్యోగులు (id, first_name, last_name, పొడిగింపు)విలువలు (12497, 'మైక్', 'చాపెల్', 4201)
సాధారణ పరిస్థితుల్లో, ఈ ప్రకటన ఉద్యోగుల పట్టికకు వరుసను జోడిస్తుంది. ఏదేమైనప్పటికీ, ID 12497 తో ఉన్న ఒక ఉద్యోగి ఇప్పటికే డేటాబేస్లో ఉన్నట్లయితే, వరుసను ఇన్సర్ట్ చేస్తే ప్రాధమిక కీ పరిమితిని ఉల్లంఘిస్తుంది మరియు ఈ కింది లోపానికి దారి తీస్తుంది: Msg 2627, స్థాయి 14, రాష్ట్రం 1, లైన్ 1ప్రాథమిక కీ పరిమితి 'PK_employee_id' ఉల్లంఘన. వస్తువు 'dbo.employees' లో నకిలీ కీని ఇన్సర్ట్ చేయలేరు.ప్రకటన రద్దు చేయబడింది.
ఈ దోషాన్ని మీరు సమస్యను పరిష్కరించుకోవాల్సిన సమాచారాన్ని మీకు అందిస్తున్నప్పుడు, దానితో రెండు సమస్యలు ఉన్నాయి. మొదట, సందేశం గుప్తమైనది. ఇది లోపం సంకేతాలు, లైన్ నంబర్లు మరియు సగటు వినియోగదారునికి అపారమయిన ఇతర సమాచారం. రెండోది, మరియు మరింత ముఖ్యంగా, ఇది ప్రకటనను నిలిపివేస్తుంది మరియు దరఖాస్తు క్రాష్కు కారణం కావచ్చు.ప్రత్యామ్నాయం TRY లో ప్రకటన మూసివేయాలని ఉంది … ఇక్కడ చూపిన విధంగా CATCH ప్రకటన: ప్రయత్నించండి TRYINSERT INTO ఉద్యోగులు (id, first_name, last_name, పొడిగింపు)విలువలు (12497, 'మైక్', 'చాపెల్', 4201)TRY ENDBEGIN క్యాచ్PRINT 'లోపం:' + ERROR_MESSAGE ();EXEC msdb.dbo.sp_send_dbmail@profile_name = 'ఉద్యోగి మెయిల్',@ అనుబంధాలు = '[email protected]',@body = 'క్రొత్త ఉద్యోగి రికార్డు సృష్టించేటప్పుడు ఒక లోపం ఏర్పడింది.',@ సబ్జెక్ట్ = 'ఉద్యోగి ID నకిలీ లోపం';క్యాచ్ ముగుస్తుంది
ఈ ఉదాహరణలో, సంభవించే ఏదైనా దోషాలు వినియోగదారుని ఆదేశాన్ని మరియు [email protected] ఇ-మెయిల్ చిరునామాకు నివేదించబడతాయి. వినియోగదారుకు చూపిన లోపం: లోపం: ప్రాథమిక కీ పరిమితి 'PK_employee_id' ఉల్లంఘన. వస్తువు 'dbo.employees' లో నకిలీ కీని ఇన్సర్ట్ చేయలేరు.మెయిల్ క్యూలో ఉంది.
అప్లికేషన్ అమలు సాధారణంగా కొనసాగుతుంది, ప్రోగ్రామర్ దోషాన్ని నిర్వహించడానికి అనుమతిస్తుంది. TRY యొక్క ఉపయోగం … CATCH ప్రకటన SQL సర్వర్ డేటాబేస్ అప్లికేషన్లు సంభవించే లోపాలు ముందుగానే గుర్తించి నిర్వహించడానికి ఒక సొగసైన మార్గం. మీరు స్ట్రక్చర్డ్ క్వరీ లాంగ్వేజ్ గురించి మరింత తెలుసుకోవాలనుకుంటే, SQL కు పరిచయము చూడండి. TRY … క్యాచ్ ఉదాహరణ
మరింత నేర్చుకోవడం













