2012-02-17 12 views

Respuesta

18

Sí.

Mientras el activador se active como parte de la transacción, cualquier cambio en las marcas dentro de la base de datos también se revertirá.

Nitpick - un disparador es un activador, no se deshace. El efectos del desencadenador será.

3

OK, una transacción real que se retrotrae en el momento de la inserción/actualización/eliminación también revertiría las acciones que el desencadenador tomó. Sin embargo, si está tomando más de una acción en una transacción, el procesamiento de la transacción tendría que ser explícito en su código para que la reversión ocurra con las acciones tempranas.

Por lo tanto, si elimino desde la tabla 1 y el desencadenante se activa y la transacción falla, todo se restituye.

Si borro de la tabla 1 y los fuegos desencadenantes y borro de la tabla 2 como parte del mismo script o proc almacenado o dynamicSQL enviado desde la aplicación, pueden suceder dos cosas. Si tiene una transacción explícita formal (que maneja correctamente los errores), todo lo que sucede, incluidas las acciones desencadenantes, se retrotrae, si confiaba en una transacción implícita (que solo revierte la última acción), entonces no cambiaría nada antes de la parte que falló

Cuestiones relacionadas