Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Riduci al minimo i tempi di inattività della tabella rinominando la vecchia tabella, quindi riempiendo una nuova versione?

Usa l'indirizzamento per evitare di manipolare direttamente le tabelle:

  • Avere 3 tabelle:Client1, Client2, Client3 con tutti gli indici, vincoli e trigger ecc
  • Utilizza sinonimi per nascondere la tabella reale es. Client, ClientOld, ClientToLoad
  • Per generare la nuova tabella, tronchi/scrivi in ​​"ClientToLoad"
  • Quindi DROP e CREATE i sinonimi in una transazione in modo che
    • Client -> cos'era ClientToLoad
    • ClientOld -> cos'era il Cliente
    • ClientToLoad -> cos'era ClientOld

Puoi usare SELECT base_object_name FROM sys.synonyms WHERE name = 'Client' per capire qual è l'indirizzamento corrente

Funziona su tutte le edizioni di SQL Server:l'altro modo è il "cambio di partizione" che richiede l'edizione aziendale