Sep 02

COMMIT y ROLLBACK en las transacciones de #SQLServer

Ya hemos visto como controlar errores. Ahora toca decirle si las grabamos o no.

Tomamos como base  nuestra base de ejemplo

Captura

y el código

Captura

Vamos a modificarlo  para utilizar COMMIT y ROLLBACK.

Si una transacción es valida, se hace. La instrucción COMMIT garantiza que todas las modificaciones de la transacción se conviertan en una parte permanente de la base de datos. La instrucción COMMIT también libera recursos que utiliza la transacción como, por ejemplo, los bloqueos.

Hay que  utilizar COMMIT TRANSACTION solo en el punto donde todos los datos a los que hace referencia la transacción sean lógicamente correctos.

Si se produce un error en una transacción o el usuario decide cancelar la transacción, hay que echar para tras la transaccion. Esto se hace con la instrucción ROLLBACK  que devuelve los datos al  estado en que estaban al inicio de la transacción. La instrucción ROLLBACK también libera los recursos que mantiene la transacción.

Vamos con un ejemplo.

Captura

y en la tabla

Captura

Vemos que se ha insertado el registro Gabriel.

Ahora vamos con el caso contrario ….

Captura

Nos da error y por lo tanto Rollback hace que la tabla

Captura

No se grabe el campo Alberto.

Principalmente este artículo es para tener una idea de como se debería hacer.

Vamos a ver los Triggers y acabamos con la certificación 70-461. Después  toca la 462