Ho alcuni trigger su alcune tabelle che eseguono una funzione quando qualcosa viene cancellato o aggiornato. Durante una transazione, se il trigger viene eseguito e in seguito nella transazione viene eseguito il rollback, anche il trigger viene riavviato?I trigger vengono annullati se una transazione non riesce in SQL Server?
risposta
Sì.
Fintanto che il trigger viene attivato come parte della transazione, anche eventuali modifiche apportate all'interno del database potrebbero essere ripristinate.
Nitpick: un trigger è un trigger, non viene eseguito il rollback. Saranno gli effetti del trigger.
OK, una transazione reale che viene ripristinata al momento dell'inserimento/aggiornamento/eliminazione comporta anche il rollback di qualsiasi azione eseguita dal trigger. Tuttavia, se si sta eseguendo più di un'azione in una transazione, l'elaborazione della transazione dovrebbe essere esplicita nel codice affinché il rollback si verifichi in azioni precedenti.
Quindi se elimino da tabella1 e il trigger si attiva e quindi la transazione non riesce, tutto è rollback.
Se si elimina dalla tabella 1 e il trigger si attiva e si elimina da table2 come parte dello stesso script o stored proc o dynamicSQL inviato dall'applicazione, potrebbero verificarsi due cose. Se si dispone di una transazione esplicita formale (che gestisce correttamente gli errori), viene eseguito il rollback di tutto ciò che accade, comprese le azioni di trigger, se ci si basa su una transazione implicita (che esegue solo il rollback dell'ultima azione), quindi non cambierà nulla prima del parte che non ha funzionato.
- 1. Transazione server Sql Timeout impegno
- 2. Crea trigger in SQL Server
- 3. TSQL: try-catch transazione in trigger
- 4. Transazione di rollback dal trigger
- 5. SQL Server Ripristina la transazione quando si utilizza THROW
- 6. SQL Server ON DELETE Trigger
- 7. SQL Server dopo l'aggiornamento trigger
- 8. ID transazione in Trigger MySQL
- 9. Disabilita Abilita server Trigger SQL
- 10. L'inserimento non riesce nella transazione, ma SQL Server restituisce 1 riga/e interessata?
- 11. SQL Server: verificare se un trigger è abilitato o disabilitato?
- 12. Transazione SQL Server e istruzione SELECT
- 13. SQL Server SE NON ESISTE Uso?
- 14. Transazione Multiple Invoke-SqlCmd e Sql Server
- 15. come vengono generati i GUID in SQL Server?
- 16. SQL Server Trigger - Invia messaggio alla coda
- 17. transazioni nidificate in SQL Server
- 18. Come verificare l'esistenza di una transazione non ancora impegnata in SQL Server 2005?
- 19. Perché i metodi parziali devono essere annullati?
- 20. SQL Server trigger commutazione Insert, Delete, Update
- 21. Cosa succede se non si ripristina una transazione in Hibernate?
- 22. Verificare se è in esecuzione un server SQL collegato
- 23. Come vengono implementati i trigger di database all'interno di un motore di database SQL?
- 24. Aggiornamento trigger T-SQL
- 25. Scrittura dopo trigger di inserimento nel server SQL
- 26. INSERT INTO se non esiste SQL server
- 27. Come creare un trigger prima di eliminare in SQL Server?
- 28. Errore durante l'utilizzo di else se in trigger sql
- 29. Come posso creare un trigger disabilitato in SQL Server 2005?
- 30. Errore di transazione Sql