La transacción es un conjunto de instrucciones la cual tiene que realizar todas sus instrucciones o ninguna de ellas, teniendo esta definición también se puede decir que la transacción es una unidad lógica de trabajo.
Slide 3
¿Cuáles son las transacciones?
Una transacción comienza con la primera instrucción DML que se
ejecute y finaliza con alguna de estas circunstancias:
Una operación COMMIT o ROLLBACK
Una instrucción DDL (como ALTER TABLE por ejemplo)
Una instrucción DCL (como GRANT)
El usuario abandona la sesión
Caída del sistema
Slide 4
Ejemplos
Un ejemplo de transacción podría ser una transacción bancaria, mediante internet se puede hacer el traspaso de dinero de una cuenta a otra, es un método común en la actualidad.
La instrucción COMMIT hace que los cambios realizados por la transacción sean
definitivos, irrevocables. Sólo se debe utilizar si estamos de acuerdo con los cambios,
conviene asegurarse mucho antes de realizar el COMMIT ya que las instrucciones
ejecutadas pueden afectar a miles de registros.
Además el cierre correcto de la sesión da lugar a un COMMIT, aunque siempre
conviene ejecutar explícitamente esta instrucción a fin de asegurarnos de lo que
hacemos.
Slide 6
ROLLBACK
Esta instrucción regresa a la instrucción anterior al inicio de la transacción,
normalmente el último COMMIT, la última instrucción DDL o DCL o al inicio de sesión.
Anula definitivamente los cambios, por lo que conviene también asegurarse de esta
operación.
Un abandono de sesión incorrecto o un problema de comunicación o de caída del
sistema dan lugar a un ROLLBACK implícito.
Slide 7
SAVE POINT
Crea un punto de almacenamiento para la transacción. El ensamblado que contiene esta clase tiene una relación de confianza con SQLAccess.dll. Está diseñado para ser utilizado por SQL Server. Para otras bases de datos, utilice el mecanismo de host proporcionado por esa base de datos.
Slide 8
SET TRANSACTION
El comportamiento por defecto de SET TRANSACTION es poner el nivel de aislammiento para la siguiente transacción (que no ha empezado todavía). Si usa lka palabra clave GLOBAL el comando pone el nivel de aislamiento de transacción por defecto globalmente para todas las transacciones creadas desde ese momento. Las conexiones existentes no se ven afectadas. Necesita el permisoSUPER para hacerlo. Usar la palabra clave SESSION determina el nivel de transacción para todas las transacciones futuras realizadas en la conexión actual.