Comprobaciones de coherencia del sistema de la tabla temporal
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Database Azure SQL Managed Instance
Con las tablas temporales, el sistema realiza varias comprobaciones de coherencia para asegurarse de que el esquema cumple los requisitos de temporalidad y que los datos son y se mantienen coherentes. Además, las comprobaciones temporales están disponibles en la instrucción DBCC CHECKCONSTRAINTS
.
Comprobaciones de coherencia del sistema
Antes de establecer SYSTEM_VERSIONING
en ON
, se llevan a cabo un conjunto de comprobaciones en la tabla de historial y en la tabla actual. Estas comprobaciones se agrupan en comprobaciones de esquema y de datos (si la tabla de historial no está vacía). Además, el sistema también realiza una comprobación de coherencia en tiempo de ejecución.
Comprobación de esquema
Al crear o modificar una tabla para convertirla en una tabla temporal, el sistema comprueba que se cumplan una serie de requisitos:
El nombre y el número de columnas es el mismo en la tabla actual y en la tabla de historial.
Los tipos de datos de cada columna coinciden entre la tabla actual y la tabla de historial.
Las columnas de periodo se establecen en
NOT NULL
.La tabla actual tiene una restricción de clave principal, mientras que la tabla de historial no.
En la tabla de historial no se definen columnas
IDENTITY
.En la tabla de historial no hay definidos desencadenadores.
En la tabla de historial no hay definidas claves externas.
En la tabla de historial no hay definidas restricciones de tabla o columna. Sin embargo, en la tabla de historial se permiten valores de columna predeterminados.
La tabla de historial no está ubicada en un grupo de archivos de solo lectura.
La tabla de historial no está configurada para el seguimiento de cambios ni la captura de datos modificados.
Comprobación de la coherencia de datos
Antes de que SYSTEM_VERSIONING
se establezca en OON
y como parte de cualquier operación de lenguaje de manipulación de datos (DML), el sistema realiza la comprobación siguiente: ValidTo >= ValidFrom
Al crear un vínculo a una tabla de historial existente, puede realizar una comprobación de coherencia de datos. La comprobación de coherencia de datos garantiza que los registros existentes no se superponen y que cada registro cumple los requisitos temporales. La comprobación de coherencia de datos se realiza de manera predeterminada. Debe realizar la comprobación de coherencia de datos siempre que los datos entre la tabla actual y la de historial puedan no estar sincronizados. Por ejemplo, cuando se incorpora una tabla de historial existente que se rellena con datos del historial.
Advertencia
Los cambios manuales del reloj del sistema provocarán errores inesperados del sistema, porque se produce un error en las comprobaciones de coherencia de datos en tiempo de ejecución para evitar condiciones de superposición (es decir, que la hora de finalización de un registro no sea anterior a su hora de inicio).
Uso de DBCC CHECKCONSTRAINTS
El comando DBCC CHECKCONSTRAINTS
incluye comprobaciones de coherencia de datos temporales. Para más información, vea DBCC CHECKDB.
Contenido relacionado
- Tablas temporales
- Introducción a las tablas temporales con control de versiones del sistema
- Creación de particiones con tablas temporales
- Consideraciones y limitaciones de las tablas temporales
- Seguridad de la tabla temporal
- Administración de la retención de datos históricos en las tablas temporales con versiones del sistema
- Tablas temporales con control de versiones del sistema con tablas optimizadas para memoria
- Funciones y vistas de metadatos de la tabla temporal