Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a: SQL Server 2016 (13.x) y versiones posteriores
Azure SQL Database
Azure SQL Managed Instance
Base de datos SQL en Microsoft Fabric
Es posible que desee deshabilitar el control de versiones de su tabla temporal de forma temporal o permanentemente. Puede hacerlo si establece la cláusula SYSTEM_VERSIONING en OFF.
Establezca SYSTEM_VERSIONING = OFF
Deja de versionar el sistema si quieres realizar operaciones de mantenimiento específicas en una tabla temporal o ya no necesitas una tabla versionada. Esta operación te da dos tablas independientes:
- Tabla actual con una definición del período
- Tabla de historial como una tabla normal
Remarks
La tabla de historial deja de capturar las actualizaciones durante SYSTEM_VERSIONING = OFF.
No se produce ninguna pérdida de datos en la tabla temporal cuando se establece SYSTEM_VERSIONING = OFF o se quita el periodo SYSTEM_TIME.
Cuando configuras SYSTEM_VERSIONING = OFF y no eliminas el SYSTEM_TIME período, el sistema sigue actualizando las columnas del período en cada operación de inserción y actualización. Las eliminaciones en la tabla actual son permanentes.
Debe quitar el punto SYSTEM_TIME para eliminar las columnas de periodo. Para quitar las columnas de periodo, use ALTER TABLE <table> DROP <column>;. Para más información, vea Cambio del esquema de una tabla temporal con control de versiones del sistema.
Al establecer SYSTEM_VERSIONING = OFF, todos los usuarios con permisos suficientes pueden modificar el esquema y el contenido de la tabla de historial o incluso eliminarla permanentemente.
No puedes establecer SYSTEM_VERSIONING = OFF si tienes otros objetos creados con SCHEMABINDING que usen extensiones temporales de consulta, como referenciar SYSTEM_TIME. Esta restricción impide que se produzcan errores en estos objetos si se establece SYSTEM_VERSIONING = OFF.
Eliminar permanentemente SYSTEM_VERSIONING
En este ejemplo se quita permanentemente SYSTEM_VERSIONING y se eliminan las columnas de periodo. La eliminación de las columnas de período es opcional.
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
Opcionalmente, elimina el punto final si quieres convertir de nuevo la tabla temporal en una tabla no temporal.
ALTER TABLE dbo.Department
DROP PERIOD FOR SYSTEM_TIME;
Quitar temporalmente SYSTEM_VERSIONING
Las siguientes operaciones requieren que establezcas el versionado del sistema a OFF:
- Eliminación de datos innecesarios del historial (
DELETEoTRUNCATE) - Eliminar datos de la tabla actual sin versionado (
DELETE,TRUNCATE) - Partición de
SWITCH OUTdesde la tabla actual - Particionar
SWITCH INen la tabla de historial
En este ejemplo se detiene temporalmente SYSTEM_VERSIONING para que se puedan realizar operaciones de mantenimiento concretas. Si interrumpe temporalmente el control de versiones como paso previo para las tareas de mantenimiento de la tabla, recomendamos encarecidamente realizar este cambio dentro de una transacción para mantener la coherencia de los datos.
Cuando vuelvas a activar el control de versiones del sistema, especifica el argumento HISTORY_TABLE. Si no lo haces, el sistema crea una nueva tabla de historial y la asocia con la tabla actual. La tabla de historia original puede seguir existiendo como tabla normal, pero ya no está asociada con la tabla actual.
BEGIN TRANSACTION;
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
TRUNCATE TABLE [History].[DepartmentHistory]
WITH ( PARTITIONS (1, 2) );
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory));
COMMIT TRANSACTION;
Contenido relacionado
- Tablas temporales
- Primeros pasos con las tablas temporales con control de versiones del sistema
- Administrar la retención de datos históricos en las tablas temporales con versiones del sistema
- Tablas temporales versionadas por el sistema con tablas optimizadas para la memoria
- Creación de una tabla temporal con versión del sistema
- Modificar datos en una tabla temporal versionada por el sistema
- Consultar datos en una tabla temporal versionada por el sistema
- Cambiar el esquema de una tabla temporal versionada por el sistema