PERO acuerdo es una unidad de trabajo que se realiza en una base de datos. Las transacciones son unidades o secuencias de trabajo realizadas en un orden lógico, ya sea manualmente por el usuario o automáticamente por algún programa de base de datos.
Una transacción es la propagación de uno o más cambios en una base de datos. Por ejemplo, si crea un registro, actualiza un registro o elimina un registro de una tabla, entonces está realizando una transacción en la tabla. Es importante monitorear las transacciones para garantizar la integridad de los datos y manejar los errores de la base de datos.
De hecho, agrupará muchas consultas SQL y las ejecutará todas juntas como parte de una transacción.
Las transacciones tienen las siguientes cuatro propiedades estándar, comúnmente denominadas ACID:
Atomicidad – Asegura la finalización exitosa de todas las operaciones dentro del bloque de trabajo; de lo contrario, la transacción se aborta en el punto de falla y las operaciones anteriores se revierten a su estado anterior.
Secuencia – Asegura que el estado de la base de datos cambie correctamente después de una transacción exitosa.
Aislamiento – Permite que las transacciones funcionen de forma independiente y transparente entre sÃ.
Durabilidad – Asegura que el resultado o efecto de una transacción comprometida persista en caso de falla del sistema.
Los siguientes comandos se utilizan para administrar transacciones:
COMPLETO – Guardar cambios.
RETROCEDER – Revertir cambios.
PUNTO DE GUARDADO – Crea puntos en grupos de transacciones para ROLLBACK.
INSTALAR UNA OFERTA – Agrega un nombre a la transacción.
Los comandos de control de transacciones se utilizan solo con los comandos DML INSERT, UPDATE y DELETE. No se pueden usar al crear tablas o descartarlas, porque estas operaciones se confirman automáticamente en la base de datos.
Para utilizar los comandos de gestión de transacciones en MS SQL Server, debemos iniciar una transacción con ‘begin tran’ o el comando start transaction, de lo contrario estos comandos no funcionarán.
El comando COMMIT es un comando transaccional que se usa para guardar los cambios causados ​​por una transacción en la base de datos. Este comando guarda todas las transacciones en la base de datos desde el último COMMIT o ROLLBACK.
A continuación se muestra la sintaxis del comando COMMIT.
COMMIT;
Considere la tabla CLIENTES con las siguientes entradas.
ID NAME AGE ADDRESS SALARY 1 Ramesh 32 Ahmedabad 2000.00 2 Khilan 25 Delhi 1500.00 3 kaushik 23 Kota 2000.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
El siguiente ejemplo de comando eliminará los registros de la tabla que tengan edad = 25 y luego COMPLETE los cambios en la base de datos.
Begin Tran DELETE FROM CUSTOMERS WHERE AGE = 25 COMMIT
Como resultado, se eliminarán dos filas de la tabla y la instrucción SELECT producirá el siguiente resultado.
ID NAME AGE ADDRESS SALARY 1 Ramesh 32 Ahmedabad 2000.00 3 kaushik 23 Kota 2000.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
El comando ROLLBACK es un comando transaccional que se utiliza para revertir transacciones que aún no se han guardado en la base de datos. Este comando solo se puede usar para deshacer transacciones desde el último COMMIT o ROLLBACK.
A continuación se muestra la sintaxis del comando ROLLBACK.
ROLLBACK
Considere la tabla CLIENTES con las siguientes entradas.
ID NAME AGE ADDRESS SALARY 1 Ramesh 32 Ahmedabad 2000.00 2 Khilan 25 Delhi 1500.00 3 kaushik 23 Kota 2000.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
El siguiente ejemplo de comando elimina registros de una tabla que tienen edad = 25 y luego revierte los cambios en la base de datos.
Begin Tran DELETE FROM CUSTOMERS WHERE AGE = 25; ROLLBACK
Como resultado, la operación de eliminación no afectará a la tabla y la instrucción SELECT producirá el siguiente resultado.
ID NAME AGE ADDRESS SALARY 1 Ramesh 32 Ahmedabad 2000.00 2 Khilan 25 Delhi 1500.00 3 kaushik 23 Kota 2000.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
SAVEPOINT es el punto en una transacción en el que puede revertir una transacción a un punto especÃfico sin revertir toda la transacción.
A continuación se muestra la sintaxis del comando SAVEPOINT.
SAVE TRANSACTION SAVEPOINT_NAME
Este comando solo sirve para crear un SAVEPOINT entre declaraciones transaccionales. El comando ROLLBACK se utiliza para deshacer un grupo de transacciones.
A continuación se muestra la sintaxis para revertir a SAVEPOINT.
ROLLBACK TO SAVEPOINT_NAME
En el siguiente ejemplo, eliminaremos tres registros diferentes de la tabla CLIENTES. Necesitaremos crear un SAVEPOINT antes de cada eliminación, de modo que podamos ROLLBACK a cualquier SAVEPOINT en cualquier momento para restaurar los datos correspondientes a su estado original.
Considere la tabla CLIENTES con las siguientes entradas:
ID NAME AGE ADDRESS SALARY 1 Ramesh 32 Ahmedabad 2000.00 2 Khilan 25 Delhi 1500.00 3 kaushik 23 Kota 2000.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
A continuación se muestra una serie de operaciones:
Begin Tran SAVE Transaction SP1 Savepoint created. DELETE FROM CUSTOMERS WHERE ID = 1 1 row deleted. SAVE Transaction SP2 Savepoint created. DELETE FROM CUSTOMERS WHERE ID = 2 1 row deleted. SAVE Transaction SP3 Savepoint created. DELETE FROM CUSTOMERS WHERE ID = 3 1 row deleted.
Hubo tres eliminaciones, sin embargo, cambiamos de opinión y decidimos ROLL de nuevo a SAVEPOINT, que definimos como SP2. Dado que SP2 se creó después de la primera desinstalación, las dos últimas desinstalaciones se deshacen:
ROLLBACK Transaction SP2 Rollback complete.
Tenga en cuenta que después de la reversión a SP2, solo se produjo la primera eliminación.
SELECT * FROM CUSTOMERS
Seleccionado 6 filas.
ID NAME AGE ADDRESS SALARY 2 Khilan 25 Delhi 1500.00 3 kaushik 23 Kota 2000.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
El comando SET TRANSACTION se puede utilizar para iniciar una transacción de base de datos. Este comando se utiliza para determinar las caracterÃsticas de la próxima transacción.
A continuación se muestra la sintaxis de SET TRANSACTION.
SET TRANSACTION ISOLATION LEVEL <Isolationlevel_name>
🚫