Vai varam izmantot darījumu saglabātajā procedūrā?
Vai varam izmantot darījumu saglabātajā procedūrā?

Video: Vai varam izmantot darījumu saglabātajā procedūrā?

Video: Vai varam izmantot darījumu saglabātajā procedūrā?
Video: Stored Procecure, Transaction processing, Exception handling SQL Server 2024, Novembris
Anonim

Ja mēs ir izpildīts vairāk nekā viens SQL priekšraksts saglabātā procedūra un mēs vēlaties atsaukt visas izmaiņas, kas veiktas ar kādu no SQL priekšrakstiem, ja kāda no SQL priekšrakstiem ir radusies kļūda, mēs varam izmantot darījumu saglabātajā procedūrā.

Tātad, vai saglabātās procedūras tiek veiktas darījumā?

Ligzdotas uzglabātās procedūras ir izpildīts iekš darījums kontekstā saglabātā procedūra . Šis ir noklusējuma iestatījums. Nodrošina iepriekš aprakstīto noklusējuma darbību. Tas ir, visi SQL priekšraksti a Saglabātās procedūras izpilde kā viens darījums bloķēt.

Papildus iepriekš minētajam, vai mēs varam izmantot apņemšanos procedūrā? Kopumā procedūras nevajadzētu apņemties . Ja jūs apņemties uzglabātā iekšpusē procedūru , jūs ierobežojat tā atkārtotu izmantošanu, jo zvanītājs, kurš vēlas, maina procedūru padara daļu no lielāka darījuma nevar vienkārši izsaukt procedūru tieši.

Saistībā ar to, vai mēs varam izmantot transakciju SQL funkcijā?

1 Atbilde. Tāpēc darījumiem ir nevajadzīgi sql - serveris funkcijas . Tomēr jūs var mainīt darījums izolācijas līmenis, piemēram, jūs varat izmantot NOLOCK mājiens, lai sasniegtu "lasīt bez saistībām" darījums izolācijas līmeni un nolasīt neiesaistītos datus no citiem darījumiem.

Vai mēs varam izmantot ligzdotas transakcijas SQL, ja jā, tad kā?

SQL Serveris īsti neatbalsta ligzdoti darījumi . Ir tikai viens darījums laikā. Šis darījums ir pamata ligzdots darījums skaitītājs, @@TRANCOUNT. Sākas katrs pēc kārtas darījums pieaugumu uz skaitītājs pa vienam, katra apņemšanās darījums samazina to par vienu.

Ieteicams: