Está en la página 1de 4

Ayuda de Estudio

Borrado de Tablas con


Constraints
ETL - Carga de datos en Data
Warehouse

Técnico en Business Analytics


Ayuda de Estudio

Introducción

Cuando se agregan datos a una tabla que está relacionada con otra se generan constraints, los
cuales protegen la información. En un ETL, al limpiar los datos de todo el Data Warehouse,
tendrás que desactivar los constraints ya que no permitirán que uses la instrucción DELETE.

ETL – Carga de datos en data warehouse Técnico en Business Analytics


Ayuda de Estudio

Primera vez que se limpian tablas

El código que se debe escribir la primera vez que se limpian tablas es el siguiente:

DELETE <Nombre de la Dimensión>;


DELETE <Nombre de la Dimensión>;
.
.
.
TRUNCATE TABLE <Nombre de la tabla de Hechos>;
TRUNCATE TABLE <Nombre de la tabla de Hechos>;
.
.
.

ETL – Carga de datos en data warehouse Técnico en Business Analytics


Ayuda de Estudio

Segunda vez que se limpian tablas


El código que se debe escribir para la segunda vez que se limpian tablas y es el que se queda
programado en la tarea:

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'


GO
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL' Procedimiento almacenado de sistema que
GO realiza las acciones programadas por cada
tabla que existe en la base de datos.
EXEC sp_MSForEachTable
'BEGIN TRY Entonces por cada tabla del Data
TRUNCATE TABLE ? warehouse, se desactivan los constraints y
END TRY los triggers, después borra los datos y
BEGIN CATCH vuelve a activar los constraints y los triggers.
DELETE FROM ?
END CATCH;'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
GO

DBCC CHECKIDENT (<Nombre de la Dimensión>, RESEED,0)


DBCC CHECKIDENT (<Nombre de la Dimensión>, RESEED,0)
.
.
.

ETL – Carga de datos en data warehouse Técnico en Business Analytics

También podría gustarte