Mam niektóre wyzwalacze w niektórych tabelach, które wykonują funkcję, gdy coś jest usunięte lub zaktualizowane. Czy w trakcie transakcji, jeśli wyzwalacz zostanie uruchomiony, a później w transakcji, zostanie wycofany, czy wyzwalacz zostanie również wycofany?Czy wyzwalacze zostaną wycofane, jeśli transakcja zakończy się niepowodzeniem w programie SQL Server?
Odpowiedz
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 .
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.
- 1. Jeśli polecenie getaddrinfo zakończy się niepowodzeniem, gdy zakończy się niepowodzeniem na zawsze (nawet po uruchomieniu sieci)
- 2. Co się stanie, jeśli konstruktor shared_ptr zakończy się niepowodzeniem?
- 3. Skąd uruchamia się serwer w SQL Server?
- 4. Zmień nazwę ograniczenia w programie SQL Server?
- 5. Łączy ntext w programie SQL Server 2005
- 6. zagnieżdżone transakcje w SQL Server
- 7. Wyświetlaj okno dialogowe, gdy sprawdzanie poprawności wejścia zakończy się niepowodzeniem.
- 8. Poczekaj, aż kolejkaUserWorkItem zakończy się
- 9. Jak wskazać, że test PHPUnit zakończy się niepowodzeniem?
- 10. Zmienianie tożsamości w programie SQL Server (na stałe!)
- 11. W programie SQL Server 2005, czy mogę wykonać usuwanie kaskadowe bez ustawiania właściwości w tabelach?
- 12. Jak znaleźć wszystkie wyzwalacze powiązane z tabelą z SQL Server?
- 13. Jak mogę pominąć test, jeśli inny test zakończy się niepowodzeniem z py.test?
- 14. Wybierz wartość, jeśli warunek w SQL Server
- 15. Jeśli indziej w procedury przechowywane SQL Server
- 16. Sql Server 2008 Tuning z dużymi transakcjami (700k + wiersze/transakcja)
- 17. jest serwer sql transakcja atomowa
- 18. Proces w Pythonie nie zakończy się
- 19. Zwróć wartość, jeśli nie zostaną znalezione żadne wiersze. SQL
- 20. C#: Używanie RegisterWaitForSingleObject, jeśli operacja zakończy się po raz pierwszy
- 21. BatchUpdateException: partia nie zakończy się
- 22. SQL Server z unii Jeśli stan
- 23. Wysyłanie wiadomości e-mail w programie Jenkins kończy się niepowodzeniem.
- 24. Wysyłanie poczty SMTP w programie SQL Server 2008 R2 ekspresowe
- 25. Procedury i uprawnienia przechowywane w programie SQL Server
- 26. Konwertuj datę na znaczniki w programie SQL Server
- 27. Jak uzyskać wartości parametrów dla zapytania SQL Server w programie SQL Server Profiler
- 28. Jak wygenerować liczbę bezpieczną kryptograficznie w programie SQL Server?
- 29. Wydajność efekt Synonimy na serwerze połączonym w programie SQL Server
- 30. SQL Server 2008 zmienia przechwytywanie danych a wyzwalacze w ścieżce audytu