Come si elimina una colonna da una tabella esistente?Eliminazione di colonne in MS SQL Server
risposta
Il comando che state cercando è:
alter table tblName drop column columnName
dove tblName
è il nome della tabella e columnName
è il nome della colonna, ma ci sono alcune cose potrebbe essere necessario fare prima
- Se sono presenti riferimenti a chiavi esterne alla colonna, è necessario eliminarli prima.
- Se c'è un indice che utilizza quella colonna, è necessario eliminarlo o regolarlo per non utilizzare quella colonna.
Tenete a mente che le prestazioni di questo comando non può essere necessariamente buono. Un'opzione consiste nell'attendere un periodo di inattività quando si può essere certi che nessuno accederà al database, rinominare la tabella corrente, quindi utilizzare create table
e insert into ... select from
per trasferire le colonne che non si desidera eliminare.
Una delle versioni successive di Oracle ha effettivamente un'eliminazione software che può solo contrassegnare una colonna come inutilizzata senza rimuoverla fisicamente. Ha lo stesso effetto dal momento che non puoi più fare riferimento a esso e c'è un comando lungo le linee di alter table ... drop unused columns
che è pensato per essere eseguito in un tempo calmo, che fa il duro lavoro di rimuoverlo fisicamente.
Questo ha il vantaggio di "scomparire" immediatamente le colonne senza trascinare le prestazioni del database durante le ore di punta.
ALTER TABLE XXX DROP COLUMN YYY;
Per tavoli di grandi dimensioni questo può essere molto lento. Spesso può essere molto più veloce creare una nuova tabella, un duplicato di quello vecchio ma con le modifiche e inserire i dati. Rilasciare la vecchia tabella e quindi rinominare la nuova tabella.
Questo può essere eseguito anche tramite la GUI SSMS.
Mi piace questo metodo perché avvisa se ci sono delle relazioni su quella colonna e può anche eliminare automaticamente anche quelle. Come afferma PaxDiablo, se ci sono relazioni, devono prima essere cancellate.
- tavolo Put in visualizzazione struttura (click destro sul tavolo) in questo modo:
- clic destro sulla colonna nella visualizzazione struttura della tabella e fare clic su "Elimina Colonna"
A questo punto, se ci sono delle relazioni che dovrebbero anche essere cancellate, ti chiederà se vuoi eliminare anche quelle.
- 1. Erlang e MS SQL Server
- 2. SQL: eliminazione di record duplicati in SQL Server
- 3. Sequenza Oracle, ma in MS SQL Server
- 4. varchar (max) MS SQL Server 2000, problemi?
- 5. tavolo Alter aggiungere più colonne MS SQL
- 6. Sql Server 2008 - Eliminazione di un sinonimo
- 7. Trasmissione di server MS SQL senza eccezioni
- 8. MS SQL Server vincolo di tabella croce
- 9. Configurazione di Liquibase con MS-SQL Server
- 10. Moltiplicazione di due colonne in SQL Server
- 11. Eliminazione di Table Spool in SQL Server Piano di esecuzione
- 12. MS SQL Server Ultimo ID inserito
- 13. MS SQL Server da NTEXT a INT
- 14. Hibernate e colonna MS SQL Server Identità
- 15. Riga GUID riga MS SQL Server
- 16. Eliminazione di tabelle temporanee globali (## tempTable) in SQL Server
- 17. HornetQ Persistenza utilizzando il server MS SQL
- 18. SQL Server UNPIVOT più colonne
- 19. Definizione di stored procedure estesa in MS SQL Server
- 20. SQL server: conversione righe in colonne
- 21. SQL Server converte colonne in righe
- 22. Azure database SQL vs MS SQL Server su macchina dedicata
- 23. Nome colonne variabili di SQL Server?
- 24. Rinominare una colonna in MS SQL Server 2005
- 25. Selezione in base a carattere Thorn MS SQL Server
- 26. Guida per la replica in MS SQL Server 2008
- 27. incompatibilità di Visual Studio 2013 con MS SQL Server 2014
- 28. Il tipo di dati decimali MS SQL Server arrotonda
- 29. MS SQL Ruby Gem
- 30. Il "tra" di MS SQL Server include i limiti dell'intervallo?
possibile duplicato di [Come rimuovere una colonna da una tabella esistente?] (Http: // StackOverflow.it/questions/5626344/how-to-remove-a-column-from-an-existing-table) –
In realtà, l'altra domanda è stata scritta 2 anni dopo questa in modo che fosse il duplicato. –