2012-02-17 8 views

Odpowiedz

18

Tak.

Dopóki wyzwalacz zostanie uruchomiony jako część transakcji, wszelkie zmiany w markach w bazie danych również zostaną wycofane.

Nitpick - wyzwalacz jest wyzwalaczem, nie zostanie wycofany. Efektem będzie wyzwalacz .

3

OK, prawdziwa transakcja, która jest wycofywana w momencie wstawienia/aktualizacji/usunięcia, również wycofałaby wszystkie akcje, które zostały podjęte. Jednak jeśli bierzesz więcej niż jedno działanie w transakcji, przetwarzanie transakcji musi być jawne w twoim kodzie, aby przywrócić działanie wczesnych akcji.

Jeśli więc usunę z tabeli 1 i wyzwalacz zostanie uruchomiony, a transakcja się nie powiedzie, wszystko zostanie wycofane.

Jeśli usuniemy z tabeli 1, a wyzwalacz zostanie uruchomiony i usunę z tabeli 2 jako część tego samego skryptu lub przechowywanego procesu lub dynamicznego SQL wysłanego z aplikacji, mogą wystąpić dwie rzeczy. Jeśli masz formalną transakcję jawną (która poprawnie obsługuje błędy), wszystko, co się dzieje, w tym akcje wyzwalające, zostaje wycofane, jeśli polegałeś na transakcji niejawnej (która tylko wycofuje ostatnią akcję), to nic nie zmieni przed część, która się nie udała.

Powiązane problemy