sql >> Databasteknik >  >> RDS >> Sqlserver

Hålla nedtid för bordet till ett minimum genom att byta namn på gamla bord och sedan fylla i en ny version?

Använd inriktning för att undvika att manipulera tabeller direkt:

  • Har 3 tabeller:Klient1, Klient2, Klient3 med alla index, begränsningar och utlösare etc.
  • Använd synonymer för att dölja den riktiga tabellen t.ex. Client, ClientOld, ClientToLoad
  • För att generera den nya tabellen, trunkerar/skriver du till "ClientToLoad"
  • Då SLAPPAR du och SKAPAR synonymerna i en transaktion så att
    • Klient -> vad var ClientToLoad
    • ClientOld -> vad var klient
    • ClientToLoad -> vad var ClientOld

Du kan använda SELECT base_object_name FROM sys.synonyms WHERE name = 'Client' för att räkna ut vad den nuvarande inriktningen är

Detta fungerar på alla utgåvor av SQL Server:det andra sättet är "partitionsbyte" som kräver företagsutgåva



  1. CakePHP 3 tidskolumn läggs till datum

  2. Räknar antalet sammanfogade rader i vänster sammanfogning

  3. Batch Mode Bitmaps i SQL Server

  4. Vad är skillnaden mellan REFERENSER med eller utan en UTLÄNDSKNYCKEL