He Aratohu Maahi-Maahi-ki-te-Tohu UI ... CATCH ki te Whakauru i nga Hapa Tūmau SQL

Te tautuhi i nga hapa me te kore e tukinotia

Ko te TRY ... CATCH te korero i roto i te Transact- SQL e kitea ana, e whakatau ana i nga tikanga hapa i roto i to tono tono paparangi. Ko tenei korero ko te kokonga o te mahinga SQL me te haumarutanga o te Kaiwhakamahi SQL, he waahanga nui hoki o te whakawhanake i nga tono paerewa pakari. TRY ... CATCH e pā ana ki te Tūmau SQL e tīmata ana ki te 2008, Database Azure SQL, Azure SQL Data Warehouse, me te Raraunga Waitohu Raraunga.

Whakatairangatia TRY..CATCH

TRY ... CATCH e mahi ana ma te tuku ia koe ki te tautuhi i nga taurangi Transact-SQL: tetahi e hiahia ana koe ki te "tamata" me tetahi atu ki te "hopu" i nga hapa ka puta ake. A, no te taetae a SQL Server ki te korero TRY ... CATCH, ka whakahaere tonu ia i te tauäkï i roto i te waahi TRY. Mena kei te angitu te korero a te TRY, ka neke tonu te Tūmau SQL. Engari, ki te whakaputahia e te korero a te TRY he hapa, ka tukuna e te SQL Server te korero a CATCH kia pai te hapai i te hapa.

Ko te raupapa o te tuhipoka ko tenei puka:

WHAKATAHI RANGI [sql_statement | statement_block} WHAKAMAHI KAUPAPA KAUPAPA [{sql_statement | statement_block}] END CATCH [; ]

TRY ... CATCH tauira

He mea tinowari ki te mohio ki te whakamahinga o tenei korero ma te whakamahi i te tauira. Whakaarohia ko koe te kaiwhakahaere o te paatai ​​raraunga rauemi tangata kei roto i te ripanga e huaina ana "Nga kaimahi," kei roto i nga korero mo ia kaimahi i roto i to whakahaere. E whakamahi ana te ripanga i te tau ID tauwhäiti hei tau matua . Ka ngana koe ki te whakamahi i te korero i raro nei hei whakauru i tetahi kaimahi hou ki roto i to papamahi:

WHAKAMAHI I roto i nga kaimahi (id, te tuatahi, te ingoa, te ingoa whakamutunga, te whakawhānui) WHAKAMAHI (12497, 'Mike', 'Chapple', 4201)

I raro i nga wa e tika ana, ka whakaurua e tenei taurangi he rarangi ki te tepu kaimahi. Engari, mehemea kei te noho tetahi kaimahi ki te ID 12497 i roto i te paataka raraunga, ka takahia te rarangi o te raupapa matua matua me te hua i te hapa e whai ake nei:

Msg 2627, Taumata 14, Taupoko 1, Raina 1 Te whakakore i te WHAKAHI WHAKAMAHI WHAKAMAHI 'PK_employee_id'. Kaore e taea te whakauru i te matua taapiri ki te ahanoa 'dbo.employees'. Kua mutu te korero.

Ahakoa e whakarato ana tenei hapa ki a koe i nga korero e hiahia ana koe ki te raruraru i te raru, e rua nga take ki a ia. Tuatahi, ko te karere he tangi. Kei roto i nga waehere hapa, nga tau raina, me etahi atu korero kaore i te marama ki te kaiwhakamahi toharite. Tuatoru, me te mea nui ake, na te mea ka puta te korero kia uru atu ai, ka taea ai te whiu i tetahi tono.

Ko te rerekētanga ko te roropi i te korero i roto i te korero TRY ... CATCH, pera me te whakaatu i raro nei:

Whakauruhia te WHAKAITI ki nga kaimahi (id, ingoa tuatahi, ingoa whakamutunga, whakawhānui) WHAKAMAHI (12497, 'Mike', 'Chapple', 4201) WHAKAMAHI KI TE WHAKAMAHI KAUPAPA '' ERROR_MESSAGE (); EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Mēra Mail', @recipients = 'hr@foo.com', @body = 'I puta he hapa i te waihanga i tētahi rekoata kaimahi hou', @subject = 'Hapa Hapa Tiwhikete Tangata'; Tuhinga o mua

I tenei tauira, ka whakaaturia nga hapa katoa e puta ana ki te kaiwhakamahi e whakahaere ana i te whakahau me te wahitau ī-mēra hr@foo.com. Ko te hapa i whakaaturia ki te kaiwhakamahi kei raro nei:

Hapa: Te whakakore i te kaha o te mana o te 'PK_employee_id'. Kaore e taea te whakauru i te matua taapiri ki te ahanoa 'dbo.employees'. Menara Mēra.

Ko te nuinga o te mea, ko te mahi tono ka haere tonu, ka taea e te kaiwhakarato te whakahaere i te hapa. Te whakamahinga o te TRY ... Ko te korero a CATCH he huarahi tino ataahua ki te kimi me te hapai i nga hapa e puta ana i nga tono paerewa SQL.

Ako atu

Mena e hiahia ana koe ki te ako atu mo te Reo Uiui Taiao, tuhia te Whakataki ki te SQL .