Ar galime naudoti sandorį saugomoje procedūroje?
Ar galime naudoti sandorį saugomoje procedūroje?

Video: Ar galime naudoti sandorį saugomoje procedūroje?

Video: Ar galime naudoti sandorį saugomoje procedūroje?
Video: Know Your Rights: Health Insurance Portability and Accountability Act 2024, Gegužė
Anonim

Jeigu mes yra vykdomas daugiau nei vienas SQL sakinys saugoma procedūra ir mes norite atšaukti bet kokius bet kurio iš SQL sakinių atliktus pakeitimus, jei dėl vieno iš SQL sakinių įvyko klaida, Mes galime naudoti sandorį saugomoje procedūroje.

Taigi, ar saugomos procedūros vykdomos atliekant operaciją?

Įdėta saugomos procedūros yra įvykdyta mirties bausmė viduje konors sandorį atokiausių kontekste saugoma procedūra . Tai numatytasis nustatymas. Teikia pirmiau aprašytą numatytąją elgseną. Tai yra, visi SQL teiginiai a Vykdyti išsaugotą procedūrą kaip vienišas sandorį blokas.

Be to, ar galime naudoti įsipareigojimą procedūroje? Apskritai, procedūras neturėtų įsipareigoti . Jei tu įsipareigoti saugomo viduje procedūra , ribojate jo pakartotinį naudojimą, nes skambinantis asmuo, norintis, kad būtų pakeistas procedūra leidžia tapti didesnio sandorio dalimi, negali tiesiog paskambinti procedūra tiesiogiai.

Kalbant apie tai, ar galime naudoti transakciją SQL funkcijoje?

1 atsakymas. Štai kodėl sandorius yra nereikalingi sql - serveris funkcijas . Tačiau jūs gali pakeisti sandorį izoliacijos lygį, pavyzdžiui, galite naudoti NOLOCK užuomina pasiekti „skaityti neįsipareigota“ sandorį izoliacijos lygį ir nuskaityti neįpareigotus duomenis iš kitų sandorius.

Ar galime naudoti įdėtas operacijas SQL, jei taip, tai kaip?

SQL Serveris tikrai nepalaiko įdėtos operacijos . Yra tik vienas sandorį tuo momentu. Šitas sandorį turi pagrindinį įdėta operacija skaitiklis, @@TRANCOUNT. Prasideda kiekvienas iš eilės sandorį prieaugiais į skaitiklis po vieną, kiekvienas įsipareigojimas sandorį sumažina jį vienu.

Rekomenduojamas: