Índice

Las tablas temporales

SQL Server propone hacer el seguimiento automático de las diferentes versiones de la información almacenada en una tabla. Es decir que SQL Server guardará una versión de cada fila antes y después de su modificación.

El nombre exacto de este mecanismo porpuesto por SQL Server es el de "Tablas de sistema temporales por versión" ya que SQL Server gestiona el periodo de validez de cada fila.

Para gestionar esta noción de temporalidad, SQL Server se apoya en:

  • Dos columnas de tipo datetime2. Estas dos columnas corresponden a las fechas y horas de inicio y final de validez.

  • Una tabla espejo (en términos de estructura) a la tabla que contiene los datos activos para conservar el histórico. A esta tabla se la conoce a menudo con el nombre de "tabla de histórico". Puede ser creada automáticamente por SQL Server o por el administrador.

Estas tablas, aunque sean singulares en su sistema de gestión de la información, se pueden administrar como cualquier otra tabla de la base de datos.

Sintaxis

CREATE TABLE nombreTabla(  
nombreColumnatipo, ...  
inicioValidez datetime2 GENERATED ALWAYS AS ROW START NOT NULL,  
finValidez datetime2 GENERATED ALWAYS AS ROW END NOT NULL,  
PERIOD FOR SYSTEM_TIME (inicioValidez, finValidez)  
) WITH (SYSTEM_VERSIONING=ON (HISTORY_TABLE= nombreTablaHistorico)) ; PERIOD

Esta tabla necesita una clave primaria.

Ejemplo

En el siguiente ejemplo, se genera una tabla de productos ...