Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Запазете времето за престой на таблицата до минимум, като преименувате стара таблица и след това попълните нова версия?

Използвайте индиректно, за да избегнете директно манипулиране на таблици:

  • Имайте 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:другият начин е „превключване на дялове“, което изисква корпоративно издание



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете последните 30 дни записи от днешна дата в SQL Server

  2. Неочаквани резултати от CTE

  3. Метаданни на SQL Server в intellisense?

  4. Експортиране на данни от двоичен файл (изображения) от SQL чрез съхранена процедура

  5. ПОКАЗВАНЕ НА ВСИЧКИ данни за дати между две дати; ако не съществува ред за определена дата, покажете нула във всички колони