17
Czasami widziałem następujący fragment kodu. Kiedy jest if @@trancount > 0
konieczne z begin try
? Oboje? Lub jest to bezpieczny sposób (najlepsza praktyka), aby sprawdzić to zawsze w przypadku wycofania przed czekiem?Kiedy trzeba sprawdzić @@ transcount> 0 w bloku catch catch?
begin tran
begin try
... just several lines of sql ...
if @@trancount > 0 commit tran
end try
begin catch
if @@trancount > 0 rollback tran
end catch
Przykład wygląda na to, że staramy się unikać transakcji zagnieżdżonych. Czy to konieczne? – ca9163d9
Według mnie, jeśli ta nowa akcja jest transakcją zagnieżdżoną, zapisz ją. Jeśli wystąpi błąd, a jest to transakcja zagnieżdżona, wycofaj zagnieżdżoną transakcję, aby nie wpłynąć na pierwotną osobę dzwoniącą. – 8kb
4: kiedy wywołujesz zaszyfrowane API SP, które nie wycofuje własnej transakcji, jeśli stwierdzi, że jest problem ... –