Kan ons transaksie in gestoorde prosedure gebruik?
Kan ons transaksie in gestoorde prosedure gebruik?

Video: Kan ons transaksie in gestoorde prosedure gebruik?

Video: Kan ons transaksie in gestoorde prosedure gebruik?
Video: Jeremy Corbell: New Footage From Lazar & Fravor [Part 2] 2024, November
Anonim

As ons het meer as een SQL-stellings in uitvoering in die gestoor prosedure en ons wil enige veranderinge wat deur enige een van die SQL-stellings gedoen is, terugrol in geval 'n fout voorkom as gevolg van een van die SQL-stellings, ons kan transaksie in gestoorde prosedure gebruik.

Net so, loop gestoorde prosedures in 'n transaksie?

Geneste gestoorde prosedures is tereggestel in die transaksie konteks van die buitenste gestoor prosedure . Dit is die verstekinstelling. Verskaf die verstekgedrag hierbo beskryf. Dit wil sê, alle SQL-stellings in a gestoor prosedure uit te voer as enkeling transaksie blok.

Behalwe hierbo, kan ons commit in prosedure gebruik? Oor die algemeen, prosedures Moet nie pleeg . As jy pleeg binnekant van 'n gestoor prosedure , jy beperk die herbruikbaarheid daarvan omdat 'n beller wat die veranderinge wil hê prosedure maak om deel te wees van 'n groter transaksie kan nie sommer bel die prosedure direk.

Met betrekking tot hierdie, kan ons transaksie in SQL-funksie gebruik?

1 Antwoord. Dis hoekom transaksies is onnodig vir sql -bediener funksies . Jy egter kan verander transaksie isolasie vlak, byvoorbeeld, kan jy gebruik NOLOCK-wenk om "lees onverbonde" te bereik transaksie isolasievlak en lees onverbonde data van ander transaksies.

Kan ons geneste transaksies in SQL gebruik, indien wel, hoe dan?

SQL Bediener ondersteun nie regtig nie geneste transaksies . Daar is net een transaksie op 'n slag. Hierdie een transaksie het 'n basiese geneste transaksie teller, @@TRANCOUNT. Elke opeenvolgende begin transaksie inkremente die teller vir een, elke pleeg transaksie verminder dit met een.

Aanbeveel: