Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server 2016 (13.x) et versions ultérieures
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Vous souhaiterez peut-être arrêter temporairement ou définitivement la gestion des versions de votre table temporelle. Pour ce faire, définissez la clause SYSTEM_VERSIONING sur OFF.
Définir SYSTEM_VERSIONING = OFF
Arrêtez le versionnement système si vous souhaitez effectuer des opérations de maintenance spécifiques sur une table temporelle ou si vous n’avez plus besoin d’une table versionnée. Cette opération vous donne deux tables indépendantes :
- La table actuelle avec une définition de la période
- Une table historique sous la forme d’une table normale
Remarks
La table d’historique cesse de capturer les mises à jour pendant SYSTEM_VERSIONING = OFF.
Aucune donnée n’est perdue dans la table temporelle lorsque vous définissez la période SYSTEM_VERSIONING = OFF ou supprimez la période SYSTEM_TIME.
Lorsque vous définissez SYSTEM_VERSIONING = OFF et ne supprimez pas la SYSTEM_TIME période, le système continue de mettre à jour les colonnes de période pour chaque opération d’insertion et de mise à jour. Les suppressions effectuées dans la table actuelle sont définitives.
Vous devez abandonner la période SYSTEM_TIME pour supprimer les colonnes de périodes. Pour supprimer les colonnes de période, utilisez ALTER TABLE <table> DROP <column>;. Pour en savoir plus, reportez-vous à Modifier le schéma d’une table temporelle à version contrôlée par le système.
Quand vous définissez SYSTEM_VERSIONING = OFF, tous les utilisateurs disposant des autorisations suffisantes peuvent modifier le schéma et le contenu de la table d’historique, et même supprimer définitivement la table d’historique.
Vous ne pouvez pas définir SYSTEM_VERSIONING = OFF si vous avez d’autres objets créés avec SCHEMABINDING qui utilisent des extensions de requête temporelle, par exemple en référençant SYSTEM_TIME. Cette restriction empêche l’échec de ces objets si vous définissez SYSTEM_VERSIONING = OFF.
Supprimer définitivement SYSTEM_VERSIONING
Cet exemple supprime définitivement SYSTEM_VERSIONING ainsi que les colonnes de période. La suppression des colonnes de période est facultative.
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
Éventuellement, supprimez le point si vous souhaitez revenir à une table temporelle non temporelle.
ALTER TABLE dbo.Department
DROP PERIOD FOR SYSTEM_TIME;
Supprimer temporairement SYSTEM_VERSIONING
Les opérations suivantes nécessitent de définir le versionnement système à OFF:
- Suppression des données superflues de l’historique (
DELETEouTRUNCATE) - Suppression des données de la table courante sans versionnement (
DELETE,TRUNCATE) - Partitionner
SWITCH OUTdepuis la table actuelle - Partitionnez
SWITCH INdans la table d’historique
Cet exemple arrête temporairement SYSTEM_VERSIONING pour que vous puissiez effectuer des opérations de maintenance spécifiques. Si vous arrêtez le contrôle de version temporairement à des fins de maintenance de tables, nous vous recommandons vivement d’effectuer cette opération dans une transaction pour préserver la cohérence des données.
Lorsque vous réactivez le système de version, spécifiez l’argument HISTORY_TABLE . Si ce n’est pas le cas, le système crée une nouvelle table d’historique et l’associe à la table actuelle. La table d’historique originale peut toujours exister comme table normale, mais elle n’est plus associée à la table actuelle.
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;
Contenu connexe
- Tables temporelles
- Bien démarrer avec les tables temporelles avec versions gérées par le système
- Gérer la conservation des données historiques dans les tables temporelles versionnées par le système
- Tables temporelles à versionnement géré par le système avec tables optimisées en mémoire
- Créer une table temporelle versionnée par le système
- Modifier des données dans une table temporelle avec version gérée par le système
- Interroger les données dans une table temporelle avec version gérée par le système
- Modifier le schéma d’une table temporelle à version contrôlée par le système