Guías Rápidas
Limpieza de Dispositivos en Base de Datos
Procedimiento técnico para el borrado masivo de estaciones y la reasignación de sus transacciones históricas a una estación activa.
Este procedimiento es fundamental durante migraciones de segmento de red o depuraciones de estaciones obsoletas. El script asegura la integridad referencial al mover todas las órdenes, cortes y reportes históricos hacia una estación de destino antes de proceder con el borrado.
Este script utiliza un bloque transaccional (
BEGIN TRANSACTION). Si se detecta un error de integridad (ej. una llave foránea activa), el sistema realizará un ROLLBACK automático, regresando la base de datos a su estado original.Procedimiento de Ejecución
Configuración de Estación Destino
En las sentencias SET station_id = X, sustituir el valor 4 por el ID de la estación que centralizará la información histórica.
Selección de Estaciones a Eliminar
En las cláusulas WHERE station_id IN (...), listar los IDs de las estaciones que se desean remover permanentemente.
Ejecución y Verificación
Ejecutar el script en SQL Server Management Studio. Si el resultado es "Proceso completado exitosamente", los cambios han sido guardados. En caso contrario, revisar el mensaje de error para identificar dependencias no resueltas.
Script de Consolidación y Limpieza
.sql
BEGIN TRANSACTION; -- Protección de integridad
BEGIN TRY
-- 1. Reasignar Órdenes Históricas
UPDATE t_pos_order
SET station_id = 4
WHERE station_id IN (1, 5, 6, 7, 8, 9, 13, 14, 20, 21, 22, 23);
-- 2. Reasignar Cabeceras de Cortes de Caja
UPDATE T_SYS_CASH_COUNT_HEADER
SET cash_count_station_id = 4
WHERE cash_count_station_id IN (1, 5, 6, 7, 8, 9, 13, 14, 20, 21, 22, 23);
-- 3. Reasignar Grupos de Impresión
UPDATE T_POS_PRODUCT_PRINTER_GROUP_STATION
SET station_id = 4
WHERE station_id IN (1, 5, 6, 7, 8, 9, 13, 14, 20, 21, 22, 23);
-- 4. Reasignar Bitácora de Jornadas (Journal)
UPDATE T_POS_JOURNAL
SET station_id = 4
WHERE station_id IN (1, 5, 6, 7, 8, 9, 13, 14, 20, 21, 22, 23);
-- 5. Reasignar Reportes X/Z
UPDATE T_POS_CASH_COUNT_DECLARE_HEADER_XZ_REPORT
SET station_id = 4
WHERE station_id IN (1, 5, 6, 7, 8, 9, 13, 14, 20, 21, 22, 23);
-- 6. Eliminación de Estaciones Obsoletas
DELETE T_POS_STATION
WHERE STATION_ID IN (1, 5, 6, 7, 8, 9, 13, 14, 20, 21, 22, 23);
-- Confirmación de cambios
COMMIT TRANSACTION;
PRINT 'Proceso completado exitosamente.';
END TRY
BEGIN CATCH
-- Deshacer cambios ante cualquier error
ROLLBACK TRANSACTION;
PRINT 'Ocurrió un error. Se han deshecho todos los cambios.';
PRINT ERROR_MESSAGE();
END CATCH;