Nzọụkwụ Nzọụkwụ Nzọụkwụ na-agba ọsọ ọsọ ... IZI iji dozie Njehie SQL Server

Chọpụta njehie n'emebughị egbu

The TRY ... CATCH nkwupụta na Transact- SQL achọpụtara ma na-eduhie ọnọdụ na ngwa nchekwa data gị. Nkwupụta a bụ isi nkuku nke njehie SQL Server na-ejikwa ma bụ akụkụ dị mkpa nke na-emepe ngwa ngwa nchekwa data. TRY ... CATCH metụtara SQL Server malite na 2008, Azure SQL Database, Azure SQL Data ụlọ nkwakọba na Parallel Data ụlọ nkwakọba.

Na-ebido ọsọ..CATCH

TRY ... OCHIE na-arụ ọrụ site n'ikwe ka ị dee okwu abụọ Transact-SQL: otu ịchọrọ "gbalịa" na onye ọzọ iji "jide" ihe ọ bụla nwere ike ịda. Mgbe SQL Server na-ezute a TRY ... CATCH nkwupụta, ọ na-egbu ozugbo nkwupụta ahụ na nsụgharị TRY. Ọ bụrụ na okwu TRY ahụ na-aga nke ọma, SQL Server na-akpali na. Otú ọ dị, ọ bụrụ na nkwupụta TRY na-eweta njehie, SQL Server na-eme ka okwu CATCH jiri nlezianya dozie njehie ahụ.

Nkọwapụta nke isi na-ewe ụdị a:

Gbanwee ọsọ {sql_statement | word_block} END TRY START CATCH [{sql_statement | word_block}] NKWỤKWỌ NDỊ [; ]

GỤKWU ... EKPỤTA Ihe Nlereanya

Ọ kachasị mfe nghọta na iji nkwupụta a site na iji ihe atụ. Were ya na ị bụ onye nchịkwa nke nchekwa data nchekwa ụmụ mmadụ nke nwere tebụl aha ya bụ "Ndị Ọrụ," nke nwere ozi gbasara onye ọ bụla n'ime ndị ọrụ gị na nzukọ gị. Tebụl na-eji nọmba nọmba nọmba nọmba nọmba nọmba dị ka isi ihe dị mkpa . Ị nwere ike ịnwa iji nkwupụta dị n'okpuru ebe a iji tinye onye ọrụ ọhụrụ n'ime nchekwa data gị:

Ịbanye na ndị ọrụ (id, first_name, last_name, extension) VALUES (12497, 'Mike', 'Chapple', 4201)

N'okpuru ọnọdụ nkịtị, nkwupụta a ga-agbakwụnye n'usoro na tebụl ndị ọrụ. Otú ọ dị, ọ bụrụ na onye ọrụ na ID 12497 dịrịrịrịrị na nchekwa data ahụ, ịtinye ahiri ga-emebi isi ihe dị mkpa ma mee ka njehie na-esonụ:

Msg 2627, Ọkwa 14, State 1, Nweta 1 Imebi PRIMARY KEY constraint 'PK_employee_id'. Enweghi ike itinye mkpụrụ edemede abụọ na ihe 'dbo.employees'. E kwusiri nkwupụta ahụ.

Ọ bụ ezie na njehie a na-enye gị ozi ịchọrọ iji dozie nsogbu ahụ, enwere nsogbu abụọ na ya. Nke mbụ, ozi ahụ bụ mkpuchi. Ọ na-agụnye koodu mmeghe, nọmba akara na ozi ndị ọzọ na-enweghị nghọta na onye ọrụ ọhaneze. Nke abụọ, na nke ka mkpa, ọ na-eme ka nkwupụta ahụ pụta ma nwee ike ịkpata ngwa ngwa.

Nhọrọ ọzọ bụ iji dochie nkwupụta ahụ na okwu TRY ... CATCH, dika egosiri n'okpuru:

BỤRỤ NTỤKWỤKWỤKWỤKWỤKWỌ NDỊ ọrụ (id, first_name, last_name, extension) VALUES (12497, 'Mike', 'Chapple', 4201) BỤRỤ NA-ECHI ECHICHE 'Error:' + ERROR_MESSAGE (); EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Onye ọrụ na Mail', @recipients = 'hr@foo.com', @body = 'Njehie mere na ịmepụta onye ọrụ ọhụrụ.', @subject = 'Error Error Duplication Error'; BỤ EZI

N'ihe atụ a, a na - akọ ma ọ bụ onye ọ bụla na - eme iwu na adreesị ozi-e hr@foo.com. Njehie egosiri onye ọrụ ahụ na-egosi n'okpuru ebe a:

Njehie: Imebi PRIMARY KEY constraint 'PK_employee_id'. Enweghi ike itinye mkpụrụ edemede abụọ na ihe 'dbo.employees'. Echere ozi.

Nke kachasị mkpa, mkpochapụ ngwa ngwa na-aga n'ihu, na-ekwe ka onye mmemme ahụ jiri nlezianya dezie njehie ahụ. Iji TRY ... CATCH nkwupụta bụ ụzọ mara mma iji chọpụta ma mee ka njehie dị na ngwa SQL Server ngwa ngwa.

Ịmụtakwu Ihe

Ọ bụrụ na ịchọrọ ịmatakwu banyere asụsụ Structured Query, gụọ Okwu Mmalite na SQL .