Ali lahko uporabimo transakcijo v shranjeni proceduri?
Ali lahko uporabimo transakcijo v shranjeni proceduri?

Video: Ali lahko uporabimo transakcijo v shranjeni proceduri?

Video: Ali lahko uporabimo transakcijo v shranjeni proceduri?
Video: КАК ОФОРМИТЬ ИПОТЕКУ В ДУБАЕ? 2024, Maj
Anonim

Če mi imeti več kot en stavek SQL, ki se izvaja v shranjeni postopek in mi želite povrniti vse spremembe, ki jih je izvedel kateri koli od stavkov SQL, če je prišlo do napake zaradi enega od stavkov SQL, lahko uporabimo transakcijo v shranjeni proceduri.

Ali se shranjene procedure izvajajo v transakciji?

Ugnezdeno shranjenih postopkov so izvršil v transakcijo kontekstu najbolj oddaljenega shranjeni postopek . To je privzeta nastavitev. Zagotavlja privzeto vedenje, opisano zgoraj. To pomeni, da vsi stavki SQL v a izvajanje shranjene procedure kot samski transakcijo blok.

Ali lahko poleg zgoraj navedenega uporabimo commit v postopku? Na splošno, postopkov ne bi smel zavezati . Če ti zavezati znotraj shranjenega postopek , omejujete njegovo ponovno uporabo, ker klicatelj, ki želi spremembe postopek pomeni, da je del večje transakcije, ni mogoče preprosto poklicati postopek neposredno.

V zvezi s tem, ali lahko uporabimo transakcijo v funkciji SQL?

1 odgovor. Zato transakcije so nepotrebni za sql -strežnik funkcije . Vendar pa ti lahko spremeniti transakcijo stopnjo izolacije lahko na primer uporaba NOLOCK namig, da dosežete "branje nepovezano" transakcijo raven izolacije in branje nepovezanih podatkov iz drugih transakcije.

Ali lahko uporabimo ugnezdene transakcije v SQL, če da, kako potem?

SQL Strežnik res ne podpira ugnezdene transakcije . Obstaja samo ena transakcijo ob času. Tale transakcijo ima osnovno ugnezdena transakcija števec, @@TRANCOUNT. Vsak zaporedni začetek transakcijo prirastki the števec po ena, vsaka potrditev transakcijo zmanjša za eno.

Priporočena: