Comprobaciones de coherencia del sistema de la tabla temporal

Aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed InstanceBase de datos SQL en Microsoft Fabric

Con tablas temporales, el sistema realiza varias comprobaciones de consistencia. Estas comprobaciones aseguran que el esquema cumple con los requisitos temporales y que los datos sean consistentes y se mantengan consistentes. La DBCC CHECKCONSTRAINTS declaración también proporciona comprobaciones temporales.

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 forman parte de las comprobaciones de esquema y de datos (si la tabla de historial no está vacía). El sistema también realiza una comprobación de consistencia en tiempo de ejecución.

Comprobación de esquema

Cuando creas o alteras una tabla para convertirla en una tabla temporal, el sistema verifica que se cumplen estos requisitos:

  1. Los nombres y el número de columnas son los mismos tanto en la tabla actual como en la de historia.

  2. Los tipos de datos coinciden para cada columna entre la tabla actual y la tabla de historial.

  3. Las columnas de periodo se establecen en NOT NULL.

  4. La tabla actual tiene una restricción de clave principal, mientras que la tabla de historial no.

  5. En la tabla de historial no se definen columnas IDENTITY.

  6. En la tabla de historial no hay definidos desencadenadores.

  7. En la tabla de historial no hay definidas claves externas.

  8. 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.

  9. La tabla de historial no está ubicada en un grupo de archivos de solo lectura.

  10. 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

Cuando creas un enlace a una tabla de historial existente, puedes elegir realizar una comprobación de consistencia de datos. Esta comprobación de consistencia de datos garantiza que los registros existentes no se solapen y que cada registro cumpla con los requisitos temporales. La comprobación de consistencia de datos se ejecuta por defecto. Realiza la comprobación de consistencia de los datos siempre que los datos entre las tablas actual y de historial puedan estar desincronizados. Por ejemplo, hazlo cuando incorporas una tabla de historial existente que ya contiene datos históricos.

Warning

Los cambios manuales en el reloj del sistema provocan que el sistema falle inesperadamente, porque las comprobaciones de consistencia de datos en tiempo de ejecución que evitan condiciones de solapamiento (es decir, que la hora de finalización de un registro no sea menor que su hora de inicio) fallan.

Uso de DBCC CHECKCONSTRAINTS

El comando DBCC CHECKCONSTRAINTS incluye comprobaciones de coherencia de datos temporales. Para más información, consulte DBCC CHECKCONSTRAINTS.