Utilisez l'indirection pour éviter de manipuler les tables directement :
- Avoir 3 tables :Client1, Client2, Client3 avec tous les index, contraintes et déclencheurs, etc.
- Utilisez synonymes pour masquer la table réelle, par exemple Client, ClientOld, ClientToLoad
- Pour générer la nouvelle table, vous tronquez/écrivez dans "ClientToLoad"
- Ensuite, vous DROP et CREATE les synonymes dans une transaction afin que
- Client -> ce qui était ClientToLoad
- ClientOld -> qu'est-ce que Client
- ClientToLoad -> ce qui était ClientOld
Vous pouvez utiliser SELECT base_object_name FROM sys.synonyms WHERE name = 'Client'
pour déterminer quelle est l'indirection actuelle
Cela fonctionne sur toutes les éditions de SQL Server :l'autre méthode est la "commutation de partition" qui nécessite une édition d'entreprise