Môžeme použiť transakciu v uloženej procedúre?
Môžeme použiť transakciu v uloženej procedúre?

Video: Môžeme použiť transakciu v uloženej procedúre?

Video: Môžeme použiť transakciu v uloženej procedúre?
Video: Transform Your Selfie into a Stunning AI Avatar with Stable Diffusion - Better than Lensa for Free 2024, Smieť
Anonim

Ak my mať vykonaných viac ako jeden SQL príkaz v uložená procedúra a my chcete vrátiť späť všetky zmeny vykonané niektorým z príkazov SQL v prípade, že sa vyskytla chyba v dôsledku jedného z príkazov SQL, môžeme použiť transakciu v uloženej procedúre.

Spúšťajú sa uložené procedúry v transakcii?

Vnorené uložené procedúry sú popravený v transakcie kontextu najvzdialenejších uložená procedúra . Toto je predvolené nastavenie. Poskytuje predvolené správanie opísané vyššie. To znamená, že všetky príkazy SQL v a vykonať uloženú procedúru ako slobodný transakcie blokovať.

Okrem vyššie uvedeného, môžeme použiť commit v procedúre? Všeobecne, postupy nemal by zaviazať sa . Ak ty zaviazať sa vnútri uloženého postup , obmedzujete jeho opätovnú použiteľnosť, pretože volajúci, ktorý chce tieto zmeny, postup umožňuje byť súčasťou väčšej transakcie nemôže jednoducho zavolať postup priamo.

Čo sa týka tohto, môžeme použiť transakciu vo funkcii SQL?

1 odpoveď. Preto transakcií sú zbytočné pre sql -server funkcie . Avšak vy môcť zmeniť transakcie úroveň izolácie, napríklad, môžete použitie NOLOCK tip na dosiahnutie „nezaviazaného čítania“ transakcie úroveň izolácie a čítať nepotvrdené údaje z iných transakcií.

Môžeme použiť vnorené transakcie v SQL, ak áno, ako?

SQL Server naozaj nepodporuje vnorené transakcie . Je tu iba jeden transakcie v tom čase. Toto transakcie má základnú vnorená transakcia počítadlo, @@TRANCOUNT. Každý po sebe idúci začiatok transakcie prírastky a počítadlo po jednom, každý záväzok transakcie zníži o jednu.

Odporúča: