Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Ograniczyć przestoje stołu do minimum, zmieniając nazwę starej tabeli, a następnie wypełniając nową wersję?

Użyj metody pośredniej, aby uniknąć bezpośredniej manipulacji tabelami:

  • Miej 3 tabele:Client1, Client2, Client3 ze wszystkimi indeksami, ograniczeniami i wyzwalaczami itp.
  • Użyj synonimów aby ukryć prawdziwą tabelę, np. Client, ClientOld, ClientToLoad
  • Aby wygenerować nową tabelę, skróć/zapisz do „ClientToLoad”
  • Następnie UPUSZCZASZ i TWORZYSZ synonimy w transakcji, aby
    • Klient -> co to było ClientToLoad
    • Stary Klient -> czym był Klient
    • ClientToLoad -> co było ClientOld

Możesz użyć SELECT base_object_name FROM sys.synonyms WHERE name = 'Client' aby dowiedzieć się, jaki jest obecny kierunek

Działa to we wszystkich edycjach SQL Server:innym sposobem jest „przełączanie partycji”, które wymaga edycji korporacyjnej



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyszukiwać i analizować sąsiednią hierarchię list za pomocą cte?

  2. SQL Server :wybierz ostatni wynik z grupy według

  3. Optymalizacja zapytań SQL — Jak określić, kiedy i czy jest potrzebna

  4. Sql binary to c# - Jak uzyskać binarny odpowiednik kodu binarnego SQL w c#

  5. Kolumna jest w konflikcie z typem innych kolumn na liście unpivot