Contenido

Objetivo

Emplear el uso de transacciones para traducir un bloque de código como un solo lote de instrucciones no importando cuantas operaciones se realicen dentro del proceso y con esto garantizar un proceso fiable tanto en su ejecución como resultado.

Descripción

Se puede tener un proceso encapsulado en un objeto de tipo procedimiento almacenado o función, incluso todas las instrucciones dentro de una excepción por si el proceso encuentra falla en la ejecución, pero existen casos en donde falla únicamente una operación de 10, por lo tanto, el proceso quedará incompleto, situación que puede causar inconsistencia en datos, con el uso de transacciones en T-SQL se logrará mantener un bloque de código como uno solo, es decir si falla una operación no se aplica ningún cambio hasta que el error haya sido corregido.

Explicación

Haz clic para revisar la explicación.

Transacciones

Recursos adicionales

Los siguientes enlaces son externos a la Universidad Tecmilenio, al acceder a ellos considera que debes apegarte a sus términos y condiciones.

Revisa el siguiente video:

Para conocer más sobre transacciones, revisa el siguiente video:

hdeleon.net. (2020, 21 de agosto). La magia de las transacciones SQL | Ejemplo en Sql Server [Archivo de video]. Recuperado de https://youtu.be/keL9-EtE-zE

Actividad

Objetivo

Implementar comandos para el uso de transacciones en un proceso importante y crítico en la operación de una empresa. 

Se requiere mantener atomicidad en la información referente a pedidos que se ingresan a diario mediante una aplicación móvil. 

Instrucciones

Una empresa necesita fusionar tres procesos en uno el cual se llamará “PedidoAutomatico”, reduciendo la lógica en los siguientes pasos: 

  1. Cuando se inserta un nuevo pedido se deberá guardar la información en la tabla de encabezado llamada “Pedidos” con la información de: “Número de pedido”, “Número de cliente”, “Fecha del pedido”, “Fecha de entrega”, “Total de pedido”. 
  2. Consultar en la tabla “Pedidos” si existen pedidos de este mismo cliente con fecha de entrega vencida con referencia a la fecha actual (fecha en que corre el proceso), si tiene más de tres pedidos pendientes, insertar información en la tabla de “PedidosAlertas”, con la información de: “Número de Cliente”, “Numero de pedidos pendientes”, “Fecha de notificación” y “Alerta”, estas dos últimas y con el mismo orden deberá ser: Fecha Actual y el valor “Pedidos Acumulados”. 
  3. Actualizar en la tabla “PedidosMonitoreo”, si existe un registro para el cliente al cual se está registrando un nuevo pedido, actualizar el número de pedidos acumulados en total, es decir el cliente CLI0010 tiene 18 pedidos en total, si se ingresa un nuevo pedido solo se actualizaría la información de “Pedidos acumulados” pasando de un valor 18 a 19. 
  4. Verificar si hay pedidos creados mayor a un año con referencia al año actual, si la condición es verdadera, insertar pedidos con esta condición a una tabla llamada “PedidosBackup” y eliminar información de “Pedidos”, con la finalidad de no tener información mayor a un año. 

Por la información manejada en este proceso se necesita implementar transacciones, es decir si falla algo durante su ejecución no se deberá efectuar ningún cambio en la base de datos, de lo contrario aplicar cambios. 

Checklist
  • Elaborar una unidad lógica compleja resguardando la integridad de cada paso con la implementación de transacciones.
  • Aplicar correctamente la integración de control de errores con transacciones.
  • Verificar que el proceso cumple con lo requerido en cuanto a aplicar cambios exclusivamente si todo el lote de código no falla.