Използвайте индиректно, за да избегнете директно манипулиране на таблици:
- Имайте 3 таблици:Client1, Client2, Client3 с всички индекси, ограничения и задействания и т.н.
- Използвайте синоними за да скриете истинската таблица, напр. Client, ClientOld, ClientToLoad
- За да генерирате новата таблица, съкращавате/пишете в „ClientToLoad“
- След това ОТПУСКАТЕ и СЪЗДАВАТЕ синонимите в транзакция, така че
- Клиент -> какво беше ClientToLoad
- ClientOld -> какво беше Client
- ClientToLoad -> какво беше ClientOld
Можете да използвате SELECT base_object_name FROM sys.synonyms WHERE name = 'Client'
за да определите каква е текущата индиректност
Това работи на всички издания на SQL Server:другият начин е „превключване на дялове“, което изисква корпоративно издание