Nigdy nie zrozumiałem, na czym polega zagnieżdżona transakcja. Zatwierdzenie transakcji zagnieżdżonej nie zobowiązuje niczego - po prostu zmniejsza się @@TRANCOUNT
. I ROLLBACK
wycofuje wszystko.Cel transakcji zagnieżdżonych
BEGIN TRANSACTION
//do an update
BEGIN TRANSACTION
//do an insert
COMMIT TRANSACTION
COMMIT TRANSACTION
Jaka jest różnica z tym:
BEGIN TRANSACTION
//do an update
//do an insert
COMMIT TRANSACTION
proszę dać mi przykład dlaczego transakcje zagnieżdżone być stosowane i jak robią różnicę.
Pozdrawiam, Petar
Mogę używać punktów bezpiecznych bez korzystania z transakcji zagnieżdżonych. Procedura przechowywana jest dobrym punktem (nigdy o tym nie myślałem). Ale jeśli nie używam procedury przechowywanej w mojej transakcji (lub nie wywołuję innego kodu), dlaczego potrzebuję zagnieżdżonych transakcji? Ciągle widzę przykłady z zagnieżdżonymi transakcjami i nie widzę sensu ich. –
Czy transakcje zagnieżdżone są użyteczne tylko podczas wywoływania zewnętrznego kodu transakcyjnego? –
Zgadzam się z Tobą i myślę, że są one przydatne do wywoływania zewnętrznego kodu transakcyjnego. Zdolność techniczna serwera SQL do obsługi transakcji zagnieżdżonych jest ważna i niedostępna we wszystkich systemach DB. Są pewne przypadki (takie jak wspomniane SP), gdzie powinieneś także użyć ['SET XACT_ABORT ON'] (http://stackoverflow.com/questions/1150032/what-jest-the-benefit-of-using-set -xact-abort-on-in-a-stored-procedure)), w którym mogą zagnieździć się "naturalnie". Nigdy też nie użyłem jawnie zagnieżdżonych transakcji. – Lucero