sql >> Base de Datos >  >> RDS >> Sqlserver

¿Mantener el tiempo de inactividad de la mesa al mínimo cambiando el nombre de la tabla anterior y luego llenando una nueva versión?

Usa la indirección para evitar manipular tablas directamente:

  • Tener 3 tablas:Client1, Client2, Client3 con todos los índices, restricciones y disparadores, etc.
  • Utilice sinónimos para ocultar la tabla real, por ejemplo, Client, ClientOld, ClientToLoad
  • Para generar la nueva tabla, trunque/escriba en "ClientToLoad"
  • Luego, SUELTA y CREA los sinónimos en una transacción para que
    • Cliente -> qué era ClientToLoad
    • ClientOld -> qué era Client
    • ClientToLoad -> qué era ClientOld

Puede usar SELECT base_object_name FROM sys.synonyms WHERE name = 'Client' para averiguar cuál es la dirección indirecta actual

Esto funciona en todas las ediciones de SQL Server:la otra forma es el "cambio de partición" que requiere la edición empresarial