Ṣe idanimọ awọn aṣiṣe lai ṣe idaniloju ipaniyan
Awọn TRY ... CATCH alaye ni Transact- SQL n ṣawari ati ki o n kapa awọn aṣiṣe ipo ninu awọn ohun elo database rẹ. Gbólóhùn yii ni igun ile-iṣẹ ti aṣiṣe aṣiṣe SQL Server ati pe o jẹ ẹya pataki ti awọn ohun elo ipilẹja ti o nyara sii. TRY ... CATCH ṣe pẹlu SQL Server ti o bere pẹlu 2008, Azure SQL Database, Azure SQL Company Factory ati Parallel Data ile ise.
Ṣiṣayẹwo TRY..CATCH
TRY ... CATCH ṣiṣẹ nipa fifun ọ lati ṣafihan awọn ọrọ Transact-SQL meji: ọkan ti o fẹ "gbiyanju" ati ẹlomiran lati lo "ṣaja" eyikeyi awọn aṣiṣe ti o le dide. Nigba ti awọn alabapade SQL Server kan TRY ... CATCH alaye, o ṣe lẹsẹkẹsẹ ọrọ ti o wa ninu ipin TRY. Ti alaye TRY naa ṣe ni ifijišẹ, Server SQL n gbe lori. Sibẹsibẹ, ti o ba jẹ pe TRY gbólóhùn ṣe aṣiṣe kan, Server SQL n ṣafihan ọrọ CATCH lati fi iṣere mu awọn aṣiṣe naa.
Ijẹrisi ipilẹ gba fọọmu yi:
BEGIN TRY {sql_statement | statement_block} TI ṢẸRẸRẸ FUN AWỌN ỌBA [{sql_statement | statement_block}} TITỌ END [; ]ṢẸRẸRẸ ... NIPA Apeere
O rọrun lati ni oye nipa lilo alaye yii nipasẹ lilo apẹẹrẹ. Fojuinu pe o jẹ alabojuto ti ibi ipamọ data awọn eniyan ti o ni tabili kan ti a npè ni "Awọn oluṣe," ti o ni alaye nipa kọọkan ninu awọn oṣiṣẹ ninu ajọ rẹ. Ipele yii nlo nọmba ID nọmba kan bi bọtini akọkọ . O le gbiyanju lati lo ọrọ yii ni isalẹ lati fi iṣẹ-ṣiṣe tuntun sinu ibi ipamọ rẹ:
Fi sii sinu awọn abáni (id, orukọ akọkọ, last_name, extension) Awọn ohun elo (12497, 'Mike', 'Chapple', 4201)Labẹ awọn ipo deede, gbolohun yii yoo fi ọjọ kan kun si tabili Awọn Abáni. Sibẹsibẹ, ti o ba jẹ pe oṣiṣẹ pẹlu ID 12497 tẹlẹ wa ninu apoti ipamọ data, fifi sii ẹjọ yoo jẹ ki idiwọ bọtini akọkọ ati ki o mu ki aṣiṣe wọnyi:
Msg 2627, Ipele 14, Ipinle 1, Laini 1 Idafin IWỌ NIPA TI idiwọn 'PK_employee_id'. Ko le fi bọtini ti o jẹ ami meji sinu ohun 'dbo.employees'. Oro naa ti pari. Nigba ti aṣiṣe yi fun ọ ni alaye ti o nilo lati ṣoro iṣoro naa, awọn oran meji wa pẹlu rẹ. Akọkọ, ifiranṣẹ naa jẹ cryptic. O ni awọn koodu aṣiṣe, awọn nọmba laini ati alaye miiran ti ko ni oye si olumulo alabọde. Keji, ati pe o ṣe pataki julọ, o fa ki iwifun naa bajẹ ati o le fa ipalara ohun elo kan.
Yiyan ni lati fi ipari si ọrọ yii ni TRY ... CATCH alaye, bi a ṣe han ni isalẹ:
Ni apẹẹrẹ yi, awọn aṣiṣe ti o waye ni a sọ fun oluṣe ti n ṣe pipaṣẹ ati adiresi e-mail hr@foo.com. Aṣiṣe ti o han si olumulo han ni isalẹ:
Aṣiṣe: Ṣẹda IWỌ NIPA TI idiwọn 'PK_employee_id'. Ko le fi bọtini ti o jẹ ami meji sinu ohun 'dbo.employees'. Mail ti dina.Ti o ṣe pataki julọ, ipaniyan ohun elo n tẹsiwaju deede, fifun oniṣẹ lati ṣe amọran ni aṣiṣe. Lilo ti TRY ... CATCH alaye jẹ ọna ti o yanilenu lati ṣawari lati ri ati mu awọn aṣiṣe ti o waye ni awọn ohun elo ipamọ SQL Server.
Ko eko sii
Ti o ba fẹ lati ni imọ siwaju sii nipa Ẹrọ Iyẹn Ti a Ṣeto, ka Ifihan si SQL .