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

Eliminazione di colonne in MS SQL Server

Il comando che stai cercando è:

alter table tblName drop column columnName

dove tblName è il nome della tabella e columnName è il nome della colonna, ma ci sono alcune cose che potresti dover fare prima.

  • Se sono presenti riferimenti a chiavi esterne alla colonna, dovrai prima eliminarli.
  • Se è presente un indice che utilizza quella colonna, dovrai eliminarlo o modificarlo per non utilizzare quella colonna.

Tieni presente che le prestazioni di questo comando potrebbero non essere necessariamente buone. Un'opzione è attendere un periodo di inattività in cui puoi essere certo che nessuno accederà al database, rinominare la tabella corrente, quindi utilizzare create table e insert into ... select from per trasferire le colonne che non vuoi eliminare.

Una delle versioni successive di Oracle ha effettivamente un'eliminazione temporanea che può semplicemente contrassegnare una colonna come inutilizzata senza rimuoverla fisicamente. Ha lo stesso effetto dal momento che non puoi più fare riferimento ad esso e c'è un comando sulla falsariga di alter table ... drop unused columns che è pensato per essere eseguito in un momento tranquillo, che fa il duro lavoro di rimuoverlo effettivamente fisicamente.

Questo ha il vantaggio di "scomparire" immediatamente le colonne senza ridurre le prestazioni del database durante i periodi di punta.