sql >> Database >  >> RDS >> Sqlserver

De downtime van de tafel tot een minimum beperken door de oude tabel te hernoemen en vervolgens een nieuwe versie te vullen?

Gebruik indirectheid om te voorkomen dat tabellen direct worden gemanipuleerd:

  • Heb 3 tabellen:Client1, Client2, Client3 met alle indexen, beperkingen en triggers enz.
  • Gebruik synoniemen om de echte tabel te verbergen, bijv. Client, ClientOld, ClientToLoad
  • Om de nieuwe tabel te genereren, kapt/schrijft u naar "ClientToLoad"
  • Vervolgens DROP en MAAK je de synoniemen in een transactie zodat
    • Client -> wat was ClientToLoad
    • ClientOld -> wat was Client
    • ClientToLoad -> wat was ClientOld

U kunt SELECT base_object_name FROM sys.synonyms WHERE name = 'Client' gebruiken om uit te zoeken wat de huidige indirectheid is

Dit werkt op alle edities van SQL Server:de andere manier is "partition switching" waarvoor enterprise-editie vereist is



  1. SQL Server Intellisense werkt niet op *sommige* servers

  2. Hoe zich te ontdoen van NUL-tekens in de Oracle-database?

  3. Hoe NULLIF() werkt in SQL Server

  4. hoe schrijf je een json-bestand als een gegevensbron in php?