Para generar un Job en SQL Server 2019 que traslade los registros más antiguos de la tabla persona
a una tabla espejo histórica, manteniendo solo los 10,000 registros más recientes en la tabla principal, puedes seguir los siguientes pasos:
Crear la tabla histórica:
CREATE TABLE persona_historica ( nombre NVARCHAR(255), edad INT, email NVARCHAR(255), identity INT PRIMARY KEY );
Crear un procedimiento almacenado para realizar la transferencia: Este procedimiento moverá los registros más antiguos a la tabla histórica y luego los eliminará de la tabla principal.
CREATE PROCEDURE sp_MoverRegistrosAntiguos AS BEGIN -- Mover los registros más antiguos a la tabla histórica INSERT INTO persona_historica (nombre, edad, email, identity) SELECT nombre, edad, email, identity FROM persona WHERE identity <= (SELECT MIN(identity) FROM (SELECT TOP 10000 identity FROM persona ORDER BY identity DESC) AS t); -- Eliminar los registros movidos de la tabla principal DELETE FROM persona WHERE identity <= (SELECT MIN(identity) FROM (SELECT TOP 10000 identity FROM persona ORDER BY identity DESC) AS t); END;
Crear un Job en SQL Server Agent: Puedes crear un Job en SQL Server Management Studio (SSMS) que ejecute el procedimiento almacenado una vez por semana.
- Abre SQL Server Management Studio (SSMS).
- Navega a SQL Server Agent > Jobs.
- Haz clic derecho en Jobs y selecciona New Job....
- En la pestaña General, dale un nombre al Job, por ejemplo,
MoverRegistrosAntiguos
. - En la pestaña Steps, haz clic en New... para agregar un nuevo paso.
- En Type, selecciona Transact-SQL script (T-SQL).
- En Command, ingresa la llamada al procedimiento almacenado:sql
EXEC sp_MoverRegistrosAntiguos;
- Haz clic en OK para guardar el paso.
- En la pestaña Schedule, haz clic en New... para crear un nuevo horario.
- Configura el Job para que corra una vez por semana en el día y hora que prefieras.
- Haz clic en OK para guardar el Job.
Este Job ahora se ejecutará automáticamente una vez por semana, manteniendo solo los 10,000 registros más recientes en la tabla persona
y trasladando los demás a la tabla persona_historica
.
No hay comentarios:
Publicar un comentario