TRY استعمال کرنے کے لئے مرحلہ وار مرحلہ گائیڈ ... SQL سرور غلطیوں کو ہینڈل کرنے کے لئے CATCH

پھانسی کو روکنے کے بغیر غلطیاں کی شناخت کریں

TRY ... ٹرانسیکٹ میں CATCH بیان - SQL آپ کے ڈیٹا بیس ایپلی کیشنز میں غلطی کے حالات کا پتہ لگاتا ہے اور ہینڈل کرتا ہے. یہ بیان SQL سرور کی خرابی کو سنبھالنے کا بنیاد ہے اور مضبوط ڈیٹا بیس ایپلی کیشنز کی ترقی کا ایک اہم حصہ ہے. TRY ... CATCH SQL Server 2008، Azure SQL ڈیٹا بیس، Azure SQL ڈیٹا گودام اور متوازی ڈیٹا گودام کے ساتھ شروع ہونے پر لاگو ہوتا ہے.

TRY..CATCH متعارف کرایا

TRY ... آپ کو دو ٹرانزیک-ایس ایس بیانات کی وضاحت کرنے کی اجازت دے کر کام کرتا ہے: جو آپ کسی بھی غلطی کو پکڑنے کے لئے استعمال کرنے کے لئے "کوشش" کرنا چاہتے ہیں اور کسی اور کو کرنا چاہتے ہیں. جب SQL سرور کو TRY کا سراغ لگاتا ہے ... CATCH بیان، یہ فوری طور پر TRY شق میں شامل بیان پر عملدرآمد کرتا ہے. اگر TRY بیان کامیابی سے چلاتا ہے تو، SQL سرور پر چلتا ہے. تاہم، اگر TRY بیان غلطی پیدا کرتا ہے تو، SQL Server کو غلطی کو سنبھالنے کیلئے CATCH بیان کو مرتب کرتا ہے.

بنیادی نحو یہ فارم لیتا ہے:

BEGIN TRY {sql_statement | statement_block} END TRY BEGIN CATCH [{sql_statement | statement_block}] END CATCH [؛ ]

TRY ... مثال کے طور پر دیکھیں

مثال کے استعمال کے ذریعے اس بیان کے استعمال کو سمجھنے میں آسان ہے. تصور کریں کہ آپ انسانی وسائل کے ڈیٹا بیس کے منتظم ہیں جن میں "ملازمین" نامی ایک ٹیبل شامل ہے جس میں آپ کے تنظیم میں ہر ملازمت کے بارے میں معلومات شامل ہیں. اس میز کو ابتدائی کلید کے طور پر ایک انوگر ملازم کی شناختی نمبر کا استعمال کرتا ہے. آپ کو اپنے ملازمین میں نئے ملازم کو داخل کرنے کے لئے ذیل میں بیان کا استعمال کرنے کی کوشش کرنی چاہئے:

ملازمتوں میں انضمام (id، first_name، last_name، توسیع) VALUES (12497، 'مائیک'، 'چاپل'، 4201)

عام حالات میں، یہ بیان ملازمین کی میز میں ایک قطار شامل کرے گا. تاہم، اگر 12497 کے ساتھ ایک ملازم پہلے ہی ڈیٹا بیس میں موجود ہے، قطار داخل کرنا بنیادی کلیدی رکاوٹ کی خلاف ورزی کرے گی اور نتیجے میں درج ذیل غلطی کا نتیجہ ہوگا:

ایس ایس 2627، سطح 14، اسٹیٹ 1، لائن 1 ابتدائی کلیدی رکاوٹ 'PK_ ملازمین' کی خلاف ورزی. اعتراض 'dbo.employees' میں ڈپلیک کلید نہیں ڈال سکتا. بیان ختم کر دیا گیا ہے.

یہ غلطی آپ کو اس معلومات کے ساتھ فراہم کرتی ہے جب آپ کو دشواری کا سامنا کرنا پڑتا ہے، اس کے ساتھ دو مسائل ہیں. سب سے پہلے، پیغام cryptic ہے. اس میں غلطی کوڈ، لائن نمبر اور دیگر معلومات شامل ہیں جو اوسط صارف کے لئے ناقابل قبول ہیں. دوسرا، اور اس سے زیادہ اہم بات یہ ہے کہ اس بیان کو روکنے کا سبب بنتا ہے اور درخواست کی حادثے کی وجہ سے ہو سکتا ہے.

متبادل ایک TRY میں بیان لینا ہے ... CATCH بیان، جیسا کہ ذیل میں دکھایا گیا ہے:

ملازمتوں میں ترمیم کریں (id، first_name، last_name، توسیع) VALUES (12497، 'مائیک'، 'چاپل'، 4201) آخر میں بیٹھے بیٹھے پرنٹ 'خرابی:' + ERROR_MESSAGE ()؛ EXEC msdb.dbo.sp_send_dbmailprofile_name = 'ملازم میل'،recipients = 'hr@foo.com'،body = 'ایک ملازم کا نیا ملازمت ریکارڈ ہوا ہے.'،subject = 'ملازم ID کی نقل و اشاعت کی خرابی'. END CATCH

اس مثال میں، کسی بھی غلطی جو واقع ہوتی ہے، دونوں صارف کو کمانڈ اور hr@foo.com ای میل ایڈریس پر عمل کرنے کی اطلاع دی جاتی ہے. صارف کو دکھایا گیا غلطی ذیل میں ظاہر ہوتی ہے:

خرابی: ابتدائی کلیدی رکاوٹ 'PK_employee_id' کی خلاف ورزی. اعتراض 'dbo.employees' میں ڈپلیک کلید نہیں ڈال سکتا. میل قطار

سب سے اہم بات یہ ہے کہ، درخواست پھانسی عام طور پر جاری رہتی ہے، اور پروگرامر کو غلطی کو سنبھالا کرنے کی اجازت دیتا ہے. TRY کا استعمال ... CATCH بیان SQL Server ڈیٹا بیس کے ایپلی کیشنز میں واقع ہونے والے غلطیوں کا پتہ لگانے اور غلطی کا پتہ لگانے کا ایک خوبصورت طریقہ ہے.

مزید سیکھنا

اگر آپ ساختہ سوال کی زبان کے بارے میں مزید جاننا چاہتے ہیں تو، SQL کا تعارف پڑھیں.