Se refiere a la idea de consignar un conjunto de cambios "tentativos" de forma permanente. Una sentencia COMMIT en SQL finaliza una transacción de base de datos dentro de un sistema gestor de base de datos relacional (SGBDR) y pone visibles todos los cambios a otros usuarios.Una sentencia COMMIT publicará cualquiera de los puntos de recuperación existentes que puedan estar en uso.El formato general es emitir una sentencia BEGIN WORK, una o más sentencias SQL, y entonces la sentencia COMMIT.
SINTAXIS:COMMIT [ { TRAN | TRANSACTION } [ transaction_name | @tran_name_variable ] ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ] [ ; ]EJEMPLO:USE AdventureWorks2012;GOBEGIN TRANSACTION;GODELETE FROM HumanR.JobCandidate WHERE JobCID = 13;GO COMMIT TRANSACTION;GO
Slide 2
ROLLBACK
Es un comando que causa que todos los cambios de datos desde la última sentencia BEGIN WORK, o START TRANSACTION sean descartados por el SGBDR, para que el estado de los datos sea devuelto a la forma en que estaba antes de que aquellos cambios tuvieran lugar.Una sentencia ROLLBACK también publicará cualquier punto de recuperación existente que pudiera estar en uso.
En español punto de recuperación, es una forma de implementar subtransacciones (también conocidad como transacciones anidadas) dentro de un sistema gestor de base de datos relacional indicando un punto dentro de una transacción de base de datos que puede ser devuelta sin afectar a cualquier trabajo realizado en la transacción antes de que el punto de recuperación fuera individual. Los Savepoints son útiles para implementar recuperación de errores complejos en aplicaciones de base de datos.Un save point puede ser declarado emitiendo una sentencia SAVEPOINT name. Todos los cambios relacionados despues de un savepoint han sido declarados que pueden ser deshechos emitiendo un comando ROLLBACK TO SAVEPOINT name command.
SINTAXIS:SAVEPOINT savepoint_nameEJEMPLO:BEGIN; INSERT INTO table1 VALUES(3); SAVEPOINT my_sp; INSERT INTO table1 VALUES(4); RELEASE SAVEPOINT my_sp;COMMIT;
Slide 4
SET TRANSACTION
SINTAXIS:SET TRANSACTION transaction_mode [, ...]SET TRANSACTION SNAPSHOT snapshot_idSET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...] where transaction_mode is one of: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY [ NOT ] DEFERRABLEEJEMPLOS:BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SET TRANSACTION SNAPSHOT '000003A1-1';
Establece las características de la transacción actual. No tiene efecto en cualquier transacción subsecuente.SET SESSION CHARACTERISTICS define las características por default para todas las transacciones subsecuentes de una sesión. Estos defaults pueden se sobre escritos por SET TRANSACTION para una transacción individual
Slide 5
Referencias
Oracle. (n/a). Database PL/SQL User's Guide and Reference. 26/02/2016, de Oracle Sitio web: http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/savepoint_statement.htmPostgreSQL. (n/a). SAVEPOINT. 26/02/2016, de The PostgreSQL Global Development Group Sitio web: http://www.postgresql.org/docs/8.1/static/sql-savepoint.htmlPostgreSQL. (n/a). COMMIT. 26/02/2016, de The PostgreSQL Global Development Group Sitio web: http://www.postgresql.org/docs/8.1/static/sql-commit.htmlPostgreSQL. (n/a). ROLLBACK. 26/02/2016, de The PostgreSQL Global Development Group Sitio web: http://www.postgresql.org/docs/8.1/static/sql-rollback.htmlPostgreSQL. (n/a). SET TRANSACTION. 26/02/2016, de The PostgreSQL Global Development Group Sitio web: http://www.postgresql.org/docs/9.2/static/sql-set-transaction.htmlMicrosoft. (n/a). COMMIT TRANSACTION (Transact-SQL). 27/02/2016, de Microsoft Sitio web: https://msdn.microsoft.com/es-es/library/ms190295(v=sql.120).aspxMicrosoft. (n/a). ROLLBACK TRANSACTION (Transact-SQL). 27/02/1026, de Microsoft Sitio web: https://msdn.microsoft.com/es-es/library/ms181299(v=sql.120).aspx