د ټی آر سټ لارښود لارښود د TRY کارولو لپاره ... د SQL سرور سرورونو سمبالولو لپاره CATCH

پرته له دې چې د تطبیق مخه ونیسي غلطۍ تشخیص کړئ

TRY ... د لیږد بیان په Transact- SQL کې کشف او ستاسو د ډیټابیس په غوښتن لیکونو کې د غلطو شرایطو سمبالول. دا بیان د ایسیل سرور سرور غلطی سمبالولو بنسټیز بنسټ دی او د پیاوړی ډیټابیس غوښتنلیکونو د پراختیا یوه مهمه برخه ده. TRY ... CATCH په SQL Server کې د 2008، Azure SQL ډیټابیس، Azure SQL Data Warehouse او موازي ډاټا ګودام څخه پیل کیږي.

TRY..CATCH پېژندل

TRY ... CATCH کار کوي چې تاسو ته اجازه درکوي چې د دوو ټرانسکیک-SQL بیاناتو مشخص کړئ: هغه څوک چې تاسو غواړئ "هڅه" او بل بل غواړئ چې "ګړندۍ" هر ډول غلطۍ کارولو لپاره وغواړئ. کله چې د ایس ایس ایل سرور یو TRY پیژني ... د بیان بیان، دا په فوري توګه هغه بیان پلي کوي چې په TRY کې شامل دي. که د TRY بیان په بريالیتوب سره ترسره شي، SQL Server ساده ده پر مخ ځي. که څه هم، که د TRY بیان یو غلطی رامنځته کړي، SQL Server د CATCH بیان په ډیره ګرمۍ سره د غلطۍ سمبالولو لپاره اجرا کوي.

لومړنۍ نخښه دا بڼه ترلاسه کوي:

BEGIN TRY {sql_statement | statement_block} پای پای ته ورسیږی [{sql_statement | statement_block}] پای پټه [ ]

TRY ... CATCH مثال

دا د اسانه کار دی چې دا بیان د مثال په توګه وکارول شي. تصور وکړئ چې تاسو د بشري منابعو ډیټابیس مدیر یاست چې په هغه کې د "کارمندانو" په نامه یو میز شامل دی، ستاسو په سازمان کې د هر کارمندانو په اړه معلومات شامل دي. دا میز د انټرنټ کارمند ID نمبر د لومړني کیلي په توګه کاروي. تاسو ممکن هڅه وکړئ چې لاندې ډاټا په خپل ډاټابیس کې د نوي کارمندانو داخلولو لپاره وکارومئ:

د کارکوونکو کارول (ID، first_name، last_name، تمدید) VALUES (12497، 'مایک'، 'چاپل'، 4201)

د عادي حالت الندې، دا بیان به د کارمندانو میز ته یو قطار اضافه کړي. که څه هم، که یو کارمند د 12497 ID سره دمخه لا دمخه د ډیټابیس کې موجود وي، قطار به د لومړني کلیدي خنډونو څخه سرغړونه کوي او نتیجه به یې په لاندې تېروتنه کې وي:

Msg 2627، لیول 14، د بهرنیو چارو 1، لین 1 د لومړني کلیدي خنډونو سرغړونه 'پیښ کارونکي_ید'. په 'ډبو کارمندانو' کې د دوتنې کیلي نه شي کولی. دا بیان فسخه شوی.

پداسي حال کې چې دا غلطي تاسو ته هغه معلومات چمتو کوي چې تاسو یې د ستونزې حل کولو ته اړتیا لرئ، د هغې سره دوه مسلې شتون لري. لومړی، پیغام پیغام دی. پدې کې د غلطي کوډونو، د کرښې شمیرې او نور معلومات شامل دي چې اوسط کاروونکي ته غیر معقول دي. دوهم، او ترټولو مهم، دا د بیان بیان کولو المل ګرځي او کیدی شي د غوښتنلیک ټرایټ رامنځته کړي.

دا بدیل دا دی چې د TRY په اړه بیان بیان کړئ ... CATCH بیان، لکه څنګه چې لاندې ښودل شوی:

د کارمندانو په لیکو کې د بیرته تګ راتګ پلټنه) id، first_name، last_name، ترویج (ارزښتونه) 12497، 'مایک'، 'چاپل'، 4201 (پای پای ته ورسیږي د چاپ کولو تېروتنه 'ERROR_MESSAGE ()؛ EXEC msdb.dbo.sp_send_dbmailprofile_name = 'کارمند میل'، @ استخدام کوونکي = 'hr@foo.com'،body = 'یوه تېروتنه رامنځته شوه چې د یو کارمند ریکارډ جوړوي.'،subject = 'د کارمند ID د نقل کولو تېروتنه'؛ پای پایله

په دې مثال کې، کوم غلطی چې پیښ شوي وي د دواړو کاروونکو ته راپور ورکول کیږي چې د قوماندې او hr@foo.com بریښناليک پته لګوي. هغه غلطي چې د کاروونکي لاندې ښودل شوي دي لاندې دي:

تېروتنه: د لومړني کلیدي خنډونو سرغړونه 'PK_ کارونکي_ید'. په 'ډبو کارمندانو' کې د دوتنې کیلي نه شي کولی. ليکه ليکه شوه.

تر ټولو مهمه، د تطبیق اجرا کول په عادي توګه دوام لري، پروګرامونکي ته اجازه ورکوي چې په غلطۍ سره غلطۍ اداره کړي. د TRY کارول ... د بیان بیان د حیرانتیا وړ لار ده چې په ساکستي ډول د ایسیل سرور سرور ډیټابیس په غوښتنلیکونو کې د پیښو غلطی کشف او سمبال کړي.

نور زده کړه

که تاسو غواړئ چې د جوړ شوي پوښتنو ژبه په اړه نور معلومات ترلاسه کړئ، د SQL پېژندنه پېژندنه ولولئ.