Comprobaciones de coherencia del sistema de la tabla temporalTemporal Table System Consistency Checks

SE APLICA A: síSQL Server síAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cuando se usan tablas temporales, el sistema realiza una serie de comprobaciones de coherencia para asegurarse de que el esquema cumple los requisitos de temporalidad y que los datos son y se mantienen coherentes.When using temporal tables, the system performs a number of consistency checks to ensure the schema complies with the requirements for temporal and the data is consistent, and remains consistent. Además, se han agregado comprobaciones temporales a la instrucción DBCC CHECKCONSTRAINTS .In addition, temporal checks have been added to the DBCC CHECKCONSTRAINTS statement.

Comprobaciones de coherencia del sistemaSystem Consistency Checks

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.Before SYSTEM_VERSIONING is set to ON, a set of checks are performed on the history table and the current table. Estas comprobaciones se agrupan en comprobaciones de esquemas y comprobaciones de datos (si la tabla de historial no está vacía).These checks are grouped into schema checks and data checks (if history table is not empty). Además, el sistema también realiza una comprobación de coherencia en tiempo de ejecución.In addition, the system also performs a runtime consistency check.

Comprobación de esquemaSchema Check

Al crear o modificar una tabla para convertirla en una tabla temporal, el sistema comprueba que se cumplan una serie de requisitos:When creating or alter a table to become a temporal table, the system verifies that requirements are met:

  1. El nombre y el número de columnas es el mismo en la tabla actual y en la tabla de historial.The names and number of columns is the same in both the current table and the history table.

  2. Los tipos de datos de cada columna coinciden entre la tabla actual y la tabla de historial.The datatypes match for each column between the current table and the history table.

  3. Las columnas de período se establecen en NOT NULL.The period columns are set to NOT NULL.

  4. La tabla actual tiene una restricción de clave principal, mientras que la tabla de historial no la tiene.The current table has a primary key constraint and the history table does not have a primary key constraint.

  5. En la tabla de historial no hay definida ninguna columna IDENTITY .No IDENTITY columns are defined in the history table.

  6. En la tabla de historial no hay definidos desencadenadores.No triggers are defined in the history table.

  7. En la tabla de historial no hay definidas claves externas.No foreign keys are defined in the history table.

  8. En la tabla de historial no hay definidas restricciones de tabla o columna.No table or column constraints are defined on the history table. Sin embargo, en la tabla de historial se permiten valores de columna predeterminados.However, default column values on the history table are permitted.

  9. La tabla de historial no está ubicada en un grupo de archivos de solo lectura.The history table is not placed in a read-only filegroup.

  10. La tabla de historial no está configurada para el seguimiento de cambios o la captura de datos modificados.The history table is not configured for change tracking or change data capture.

Comprobación de coherencia de datosData Consistency Check

Antes de que SYSTEM_VERSIONING se establezca en ON y como parte de cualquier operación de DML, el sistema realiza la comprobación siguiente: SysEndTimeSysStartTimeBefore SYSTEM_VERSIONING is set to ON and as part of any DML operation, the system performs the following check: SysEndTimeSysStartTime

Al crear un vínculo a una tabla de historial existente, puede realizar una comprobación de coherencia de datos.When creating a link to an existing history table, you can choose to perform a data consistency check. La comprobación de coherencia de datos garantiza que los registros existentes no se superponen y que cada registro cumple los requisitos temporales.This data consistency check ensures that existing records do not overlap and that temporal requirements are fulfilled for every individual record. La comprobación de coherencia de datos se realiza de manera predeterminada.Performing the data consistency check is the default. Por lo general, se recomienda realizar esta comprobación 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.Generally, performing the data consistency is recommended whenever the data between the current and history tables may be out of sync, such as when incorporating an existing history table that is populated with history data.

Advertencia

Si se cambia manualmente la hora del reloj del sistema, el sistema fallará inesperadamente porque se producirá un error en las comprobaciones de coherencia de datos en tiempo de ejecución que se aplican 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).Manual changes to the system clock will cause the system to fail unexpectedly because the runtime data consistency checks that are in place to prevent overlap conditions (namely that the end time for a record is not less than its start time) will fail.

DBCC CHECKCONSTRAINTSDBCC CHECKCONSTRAINTS

El comando DBCC CHECKCONSTRAINTS incluye comprobaciones de coherencia de datos temporales.The DBCC CHECKCONSTRAINTS command includes temporal data consistency checks. Para obtener más información, vea DBCC CHECKCONSTRAINTS (Transact-SQL).For more information, see DBCC CHECKCONSTRAINTS (Transact-SQL).

Consulte tambiénSee Also

Tablas temporales Temporal Tables
Introducción a las tablas temporales con versión del sistema Getting Started with System-Versioned Temporal Tables
Creación de particiones con tablas temporales Partitioning with Temporal Tables
Limitaciones y consideraciones de las tablas temporales Temporal Table Considerations and Limitations
Seguridad de la tabla temporal Temporal Table Security
Administración de la retención de datos históricos en las tablas temporales con versiones del sistema Manage Retention of Historical Data in System-Versioned Temporal Tables
Tablas temporales con control de versiones del sistema con tablas con optimización para memoria System-Versioned Temporal Tables with Memory-Optimized Tables
Funciones y vistas de metadatos de la tabla temporalTemporal Table Metadata Views and Functions