In Bezug auf Update und Einfügen von Triggern für MS SQL Server gibt es eine Möglichkeit, sie atomar zu machen? Mit anderen Worten, wenn während des Triggers ein Fehler auftritt, ist es möglich, das ursprüngliche Insert oder Update automatisch zurückzusetzen.MSSQL: Was passiert, wenn während der Ausführung des Triggers ein Fehler auftritt?
Antwort
Nach Trigger sind automatisch Teil der atomaren DML-Anweisung einfügen/aktualisieren/löschen für eine Tabelle.
Sie geben einfach ROLLBACK TRAN im Trigger aus, um alle Arbeiten im Trigger und der ursprünglichen I/U/D-Anweisung rückgängig zu machen. Der äußerste tran wird auch zurückgerollt, wenn es einen gibt.
Wichtig
Rollback in Trigger für SQL 2000 und früher bricht die Partie. Kein Code, nachdem die betreffende I/U/D ausgeführt wurde. See Erland great article und another
Für SQL 2005 mit TRY/CATCH, wird die Ausführung zum CATCH-Block gehen und Ihr Stapel (aka gespeicherten Proc etc) wird normal beendet.
Siehe Rollbacks and Commits in Stored Procedures and Triggers. Der Trigger und TRY/CATCH-Interaktion ist here
Es ist ein guter Artikel in MSDN, die über Trigger und Transaktionen spricht, befindet sich hier:
http://msdn.microsoft.com/en-us/magazine/cc164032.aspx
Im Grunde wollen Sie Transaktionen verwenden die Operation atomar zu machen.
- 1. Was passiert in der x86-Architektur, wenn ein Interrupt auftritt?
- 2. Fehler während der Ausführung des SonarQube-Scanners
- 3. Was passiert, wenn ein Stromausfall auftritt, während das Betriebssystem gerade Datei-E/A-Operationen ausführt?
- 4. Was passiert, wenn eine JSP Ausführung beendet?
- 5. Multidex-Grenzwert, der während der Ausführung von Unit-Testfällen auftritt
- 6. DatastoreService Stapel löschen. Was passiert, wenn eine Ausnahmebedingung auftritt?
- 7. Was passiert, wenn im Dictionary-Schlüssel eine Hash-Kollision auftritt?
- 8. Fehler bei der Ausführung des Triggers. So bearbeiten Sie Select-Anweisungen
- 9. TestNG nicht in der Testsuite ausgeführt, während der Fehler auftritt
- 10. Was passiert, wenn eine statusbehaftete Bean während des Aufrufs der asynchronen Methode zerstört wird?
- 11. Warum tritt ein Fehler beim Erstellen des Triggers auf?
- 12. Was ist das korrekte GraphQL-Verhalten, wenn während der Ausführung mehrerer Mutationen ein Fehler auftrat?
- 13. während moodle Fehler bei der Installation auftritt HTTP-Fehler 403.14
- 14. Was passiert, wenn der Browser-Agent während der Wiedergabe des Loadrunner-Webprotokollskripts geändert wird?
- 15. Was passiert, wenn ein Prozess gespalten wird?
- 16. Was passiert eigentlich, wenn ApplicationCommands.Close
- 17. Was passiert während der String-Initialisierung?
- 18. iOS App friert während der Ausführung des Hintergrunds ein
- 19. Was passiert, wenn ein Lambda während des Laufs bewegt/zerstört wird?
- 20. Docker mount passiert vor oder nach der Ausführung des Einstiegspunkts
- 21. Was passiert, wenn ein Ereignis ausgelöst wird
- 22. Android - Was passiert, wenn ein Signaturschlüssel abläuft?
- 23. Was passiert während des Durchlaufs durch Referenz in C?
- 24. Validation.HasError wird nicht erneut ausgelöst, wenn ein neuer Fehler auftritt, während bereits true
- 25. Wenn sonst schwerwiegender Fehler auftritt
- 26. Was passiert, wenn der shared_ptr-Konstruktor fehlschlägt?
- 27. Was passiert, wenn Sie ein Programm ausführen?
- 28. Was passiert während Standby und Ruhezustand?
- 29. Senden von Nachrichten in großen Mengen an APNS, was passiert, wenn bei einigen von ihnen ein Fehler auftritt?
- 30. 500.19 Fehler in IIS7, wenn ein Fehler auftritt
+1 für die Verknüpfung zu Erland-Artikeln. –