Comprobaciones de coherencia del sistema de la tabla temporal
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure 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, se han agregado comprobaciones temporales a 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 período 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 hay definida ninguna columna 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 ON y como parte de cualquier operación de 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. Por lo general, 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
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).
DBCC CHECKCONSTRAINTS
El comando DBCC CHECKCONSTRAINTS
incluye comprobaciones de coherencia de datos temporales. Para obtener más información, consulte DBCC CHECKCONSTRAINTS (Transact-SQL).
Pasos siguientes
- Tablas temporales
- Introducción a las tablas temporales con versión del sistema
- Creación de particiones con tablas temporales
- Limitaciones y consideraciones de las tablas temporales
- Seguridad de la tabla temporal
- Administración de la retención de datos históricos en las tablas temporales con control de versiones del sistema
- Tablas temporales con control de versiones del sistema con tablas con optimización para memoria
- Funciones y vistas de metadatos de la tabla temporal
Comentarios
https://aka.ms/ContentUserFeedback.
Proximamente: Ao longo de 2024, retiraremos gradualmente GitHub Issues como mecanismo de comentarios sobre o contido e substituirémolo por un novo sistema de comentarios. Para obter máis información, consulte:Enviar e ver os comentarios