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

Come funziona l'alter table switch sul server sql?

Inserimento di dati utilizzando l'istruzione

insert into T2 select * from T1

Carica i dati inserendo i dati da T1 in T2. ​​Quando una partizione viene trasferita (commutata), i dati non vengono spostati fisicamente; cambiano solo i metadati sulla posizione dei dati.

Prima di poter cambiare partizione, devono essere soddisfatti diversi requisiti generali:

Requisiti generali per il cambio di partizione:

Quando una partizione viene trasferita, i dati non vengono spostati fisicamente; solo i metadati sulla posizione dei dati cambiano. Prima di poter cambiare partizione, devono essere soddisfatti diversi requisiti generali:

  1. Entrambe le tabelle devono esistere prima dell'operazione SWITCH. La tabella da cui viene spostata la partizione (la tabella di origine) e la tabella che riceve la partizione (la tabella di destinazione) devono esistere nel database prima di eseguire l'operazione di commutazione.
  2. La partizione ricevente deve esistere e deve essere vuota. Sia che tu stia aggiungendo una tabella come partizione a una tabella partizionata già esistente o spostando una partizione da una tabella partizionata a un'altra, la partizione che riceve la nuova partizione deve esistere e deve essere una partizione vuota.
  3. La tabella ricevente non partizionata deve esistere e deve essere vuota. Se stai riassegnando una partizione per formare una tabella non partizionata, la tabella che riceve la nuova partizione deve esistere e deve essere una tabella vuota non partizionata.
  4. Le partizioni devono trovarsi sulla stessa colonna. Se stai cambiando una partizione da una tabella partizionata a un'altra, entrambe le tabelle devono essere partizionate sulla stessa colonna.
  5. Le tabelle di origine e di destinazione devono condividere lo stesso filegroup. La tabella di origine e di destinazione dell'istruzione ALTER TABLE...SWITCH deve risiedere nello stesso filegroup e le relative colonne di valore elevato devono essere archiviate nello stesso filegroup. Tutti gli indici, le partizioni di indici o le partizioni di vista indicizzate corrispondenti devono anche risiedere nello stesso filegroup. Tuttavia, il filegroup può essere diverso da quello delle tabelle corrispondenti o di altri indici corrispondenti.

Queste informazioni e altre informazioni si trovano qui:

https://technet.microsoft.com/ it-it/library/ms191160(v=sql.105).aspx