Xetux Docs
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;
Copyright © 2026