ટ્રાયનો ઉપયોગ કરવા માટેની એક પગલું-બાય-પગલું માર્ગદર્શન ... SQL સર્વર ભૂલોને નિયંત્રિત કરવા માટે કેચ કરો

એક્ઝેક્યુશનને અટકાવ્યા વિના ભૂલોને ઓળખો

TRY ... ટ્રૅન્ક્ટમાં કેચ સ્ટેટમેન્ટ- એસક્યુએલ તમારા ડેટાબેઝ એપ્લીકેશનોમાં ભૂલની શરતોને શોધે છે અને સંભાળે છે. આ નિવેદન SQL સર્વર ભૂલ નિયંત્રણના પાયાનો છે અને મજબૂત ડેટાબેઝ એપ્લિકેશન્સ વિકસાવવાનું એક મહત્વપૂર્ણ ભાગ છે. અજમાયશ કરો ... કેચ 2008 થી SQL સર્વર સાથે શરૂ થાય છે, એઝ્યુર SQL ડેટાબેઝ, નીલ SQL ડેટા વેરહાઉસ અને સમાંતર ડેટા વેરહાઉસ.

TRY..CATCH પરિચય

પ્રયાસ કરો ... કેચ બે ટ્રાન્ઝેક્ટ્સ-એસક્યુએલ સ્ટેટમેન્ટને સ્પષ્ટ કરવા માટે તમને પરવાનગી આપે છે: એક કે જે તમે "પ્રયાસ" કરવા માંગો છો અને અન્ય કોઈ પણ ભૂલો કે જે ઊભી કરે છે તેને "કેચ" કરવા માટે વાપરી શકો છો. જ્યારે SQL સર્વર પ્રયાસ કરે છે ... CATCH નિવેદન, તે તુરંત જ TRY ખંડમાં સમાવિષ્ટ નિવેદનનો અમલ કરે છે. જો TRY નિવેદન સફળતાપૂર્વક અમલમાં મૂકે છે, તો SQL સર્વર ફક્ત ચાલે છે જો, TRY નિવેદનમાં એક ભૂલ પેદા થાય છે, તો SQL સર્વર પ્રભાવપૂર્વક ભૂલને નિયંત્રિત કરવા માટે CATCH સ્ટેટમેન્ટને અમલમાં મૂકે છે.

મૂળભૂત વાક્યરચના આ ફોર્મ લે છે:

BEGIN પ્રયાસ કરો {sql_statement | સ્ટેટમેંટ_બ્લીક} પૂરું કેચ [{sql_statement | statement_block}] END CATCH [; ]

પ્રયાસ કરો ... કેચ ઉદાહરણ

આ નિવેદનના ઉપયોગને ઉદાહરણના ઉપયોગ દ્વારા સમજવા માટે સૌથી સરળ છે. કલ્પના કરો કે તમે માનવ સંસાધન ડેટાબેઝના એડમિનિસ્ટ્રેટર છો, જે "કર્મચારીઓ" નામના કોષ્ટક ધરાવે છે, જેમાં તમારી સંસ્થામાં દરેક કર્મચારી વિશેની માહિતી શામેલ છે. તે ટેબલ પૂર્ણાંક કર્મચારી આઈડી નંબરનો ઉપયોગ પ્રાથમિક કી તરીકે કરે છે. તમારા ડેટાબેઝમાં એક નવો કર્મચારી શામેલ કરવા માટે તમે નીચેના નિવેદનનો ઉપયોગ કરવાનો પ્રયાસ કરી શકો છો:

કર્મચારીઓની અંદર દાખલ કરો (id, first_name, last_name, extension) મૂલ્યો (12497, 'માઇક', 'ચેપલ', 4201)

સામાન્ય સંજોગોમાં, આ નિવેદન કર્મચારીઓની કોષ્ટકમાં એક પંક્તિ ઉમેરશે. જો કે, જો કોઈ વ્યક્તિ આઈડી 12497 સાથે પહેલેથી જ ડેટાબેઝમાં અસ્તિત્વ ધરાવે છે, તો પંક્તિ દાખલ કરવું પ્રાથમિક કી અવરોધનું ઉલ્લંઘન કરશે અને નીચેના ભૂલમાં પરિણમશે:

સંદેશ 2627, સ્તર 14, રાજ્ય 1, રેખા 1 મુખ્ય કી અવરોધ 'PK_employee_id' નું ઉલ્લંઘન. ઑબ્જેક્ટ 'dbo.employees' માં ડુપ્લિકેટ કી શામેલ કરી શકાતી નથી. નિવેદન સમાપ્ત કરવામાં આવ્યું છે.

જ્યારે આ ભૂલ તમને સમસ્યાનું નિરાકરણ કરવાની જરૂર છે તે માહિતી આપે છે, તેની સાથે બે મુદ્દાઓ છે. પ્રથમ, સંદેશ વિસ્મૃત છે. તેમાં ભૂલ કોડ્સ, રેખા સંખ્યાઓ અને અન્ય વપરાશકર્તાને સરેરાશ વપરાશકર્તા માટે દુર્બોધતા શામેલ છે. બીજું, અને વધુ મહત્ત્વની, તે નિવેદનને અડધેથી અટકાવે છે અને એપ્લિકેશન ક્રેશનું કારણ બની શકે છે.

વૈકલ્પિક, ટીએઆરઇ ... કેચ સ્ટેટમેન્ટમાં નિવેદનને લપેટી કરવાનો છે, નીચે બતાવેલ પ્રમાણે:

BEGIN કર્મચારીઓને દાખલ કરો (id, first_name, last_name, extension) મૂલ્યો (12497, 'માઇક', 'ચેપલ', 4201) છેલ્લે આવો પ્રયાસ કરો કેચ છાપો 'ભૂલ:' + ERROR_MESSAGE (); EXEC msdb.dbo.sp_send_dbmail @profile_name = 'કર્મચારી મેઇલ', @recipients = 'hr@foo.com', @body = 'નવો કર્મચારી રેકોર્ડ બનાવતી વખતે ભૂલ આવી.', @ Subject = 'કર્મચારીનું ID ડુપ્લિકેશન ભૂલ'; END CATCH

આ ઉદાહરણમાં, કોઈપણ ભૂલો કે જે બંને વપરાશકર્તાને આદેશ ચલાવવા અને hr@foo.com ઈ-મેલ સરનામા માટે અહેવાલ થયેલ છે. વપરાશકર્તાને બતાવવામાં આવેલી ભૂલ નીચે દેખાય છે:

ભૂલ: પ્રાથમિક કી અવરોધ 'PK_employee_id' નું ઉલ્લંઘન. ઑબ્જેક્ટ 'dbo.employees' માં ડુપ્લિકેટ કી શામેલ કરી શકાતી નથી. મેઇલ કતારમાં.

સૌથી અગત્યનું, એપ્લિકેશન અમલ સામાન્ય રીતે ચાલુ રહે છે, જે પ્રોગ્રામરને પ્રભાવપૂર્વક ભૂલને હેન્ડલ કરવાની મંજૂરી આપે છે. ટ્રાયનો ઉપયોગ ... કેચ સ્ટેટમેન્ટ એ એસક્યુએલ સર્વર ડેટાબેઝ એપ્લિકેશન્સમાં થતી ભૂલોને સક્રિય રીતે શોધી અને નિયંત્રિત કરવા માટેનો એક ભવ્ય રસ્તો છે.

વધુ શીખવી

જો તમે સ્ટ્રક્ચર્ડ ક્વેરી લેંગવેજ વિશે વધુ જાણવા માંગતા હો, તો SQL નો પરિચય વાંચો.