Khetholla liphoso ntle le ho sitisa ho bolaoa
Letšoao la TRY ... la CATCH ho Transact- SQL le lemoha le ho sebetsana le maemo a phoso ka mekhoa ea hau ea marang-rang. Polelo ena ke lejoe la sekhutlo la SQL Server le phoso e sebetsanang le phoso 'me ke karolo ea bohlokoa ea ho ntshetsa pele lik'homphieutha tse matla. Leka ... CATCH e sebetsa ho SQL Server ho qala ka 2008, Azure SQL Database, Azure SQL Data Warehouse le Parallel Data Warehouse.
Ho hlahisa TRY..CATCH
Leka ... CATCH e sebetsa ka ho lumella hore u hlahise lipolelo tse peli tsa Transact-SQL: tseo u batlang ho "leka" le tse ling ho li sebelisa ho "tšoara" liphoso leha e le life tse ka 'nang tsa hlaha. Ha SQL Server e kopana le tekete ea TRY ... CATCH, e potlakela ho hlahisa polelo e kenyelletsoeng sechabeng sa TRY. Haeba polelo ea TRY e sebetsa ka katleho, SQL Server e tsoelapele feela. Leha ho le joalo, haeba polelo ea TRY e hlahisa phoso, SQL Server e phetha polelo ea CATCH ho sebetsana ka phoso le phoso.
Mantsoe a motheo a mantsoe a qalang a nka mokhoa ona:
Qala QALANG {sql_statement | statement_lock} QETELA LEKA HO QALA CATCH [{sql_statement | statement_lock}] FIN CATCH [; ]LEKA ... Mohlala oa CATCH
Ho bonolo ho utloisisa tšebeliso ea polelo ena ka ho sebelisa mohlala. Ak'u inahanele hore u mookameli oa lits'ebeletso tsa basebetsi tse nang le tafole e bitsoang "Basebetsi," e nang le tlhahisoleseding e mabapi le e mong le e mong oa basebetsi mokhatlong oa hau. Tafole eo e sebelisa nomoro e kholo ea ID ea mosebetsi e le senotlolo se ka sehloohong . U ka 'na ua leka ho sebelisa polelo e ka tlase ho kenya mosebeletsi e mocha kahare ea hau:
KENA HO basebeletsi (id, pele_name, last_name, extension) VALUES (12497, 'Mike', 'Chapple', 4201)Tlas'a maemo a tloaelehileng, polelo ena e ne e tla eketsa tafole tafoleng ea Basebetsi. Leha ho le joalo, haeba mosebeletsi ea nang le ID 12497 a se a ntse a le teng ka lebenkeleng, ho kenya mola ho tlōla molao-motheo o ka sehloohong le ho etsa phoso e latelang:
Msg 2627, Level 14, State 1, Line 1 Tlhekefetso ea lithibelo tsa PRYARY KEY 'PK_employee_id'. Ha e khone ho kenya senotlolo sechabeng ka 'dbo.employees' ntho. Polelo e felisitsoe. Le hoja phoso ena e fana ka boitsebiso boo u bo hlokang ho rarolla bothata, ho na le lintlha tse peli le eona. Ntlha ea pele, molaetsa ke oa bohlokoa. E kenyelletsa melao ea phoso, linomoro tsa line le lintlha tse ling tse sa utloisisoang ho basebelisi ba tloaelehileng. Ea bobeli, le ho bohlokoa ho feta, e etsa hore polelo e tlosoe 'me e ka baka ts'ebetso ea kopo.
Ntho e 'ngoe ke ho koahela polelo ka polelo ea TRY ... CATCH, joalokaha ho bontšitsoe ka tlaase:
Mohlala ona, liphoso leha e le life tse etsahalang li tlalehoa ho bohle ba sebelisang taelo le aterese ea e-mail ea hr@foo.com. Phoso e bontšitsoeng ho mosebedisi e hlaha ka tlase:
Phoso: Tlhekefetso ea constraint ea PRIMARY KEY 'PK_employee_id'. Ha e khone ho kenya senotlolo sechabeng ka 'dbo.employees' ntho. Leqhoa la mela.Habohlokoa ka ho fetisisa, ts'ebetsong ea ts'ebetso e ntse e tsoela pele ka tloaelo, e lumella sesebelisi ho sebetsana ka phoso le phoso. Tšebeliso ea TRY ... polelo ea CATCH ke mokhoa o hlollang oa ho lemoha le ho sebetsana le liphoso tse hlahang likarolong tsa basebetsi ba SQL Server.
Ho ithuta ho eketsehileng
Haeba u batla ho ithuta ho eketsehileng ka Puo ea Sebopeho e Hlophisitsoeng, bala Sengoli sa SQL .