¿Cómo elimino una columna de una tabla existente?Eliminación de columnas en MS SQL Server
Respuesta
El comando que estás buscando es:
alter table tblName drop column columnName
donde tblName
es el nombre de la tabla y columnName
es el nombre de la columna, pero hay algunas cosas que pueda necesitar hacer primero
- Si hay referencias de clave externa a la columna, primero tendrá que deshacerse de ellas.
- Si hay un índice que utiliza esa columna, tendrá que deshacerse de él o ajustarlo para no usar esa columna.
Tenga en cuenta que el rendimiento de este comando puede no ser necesariamente bueno. Una opción es esperar un período de inactividad cuando puede estar seguro de que nadie accederá a la base de datos, cambiar el nombre de la tabla actual, luego usar create table
y insert into ... select from
para transferir las columnas que no desea eliminar.
Una de las últimas versiones de Oracle en realidad tiene una eliminación suave que simplemente marca una columna como no utilizada sin eliminarla físicamente. Tiene el mismo efecto ya que no se puede seguir haciendo referencia a él y hay un comando a lo largo de las líneas alter table ... drop unused columns
que se debe ejecutar en tiempo de silencio, lo que hace el trabajo duro de eliminarlo físicamente.
Esto tiene la ventaja de "desaparecer" las columnas inmediatamente sin reducir el rendimiento de la base de datos durante las horas punta.
ALTER TABLE XXX DROP COLUMN YYY;
Para las tablas grandes esto puede ser muy lento. A menudo puede ser mucho más rápido crear una nueva tabla, un duplicado de la anterior pero con los cambios e insertar los datos. Suelta la tabla anterior y luego cambia el nombre de la nueva tabla.
Esto también se puede hacer a través de la GUI de SSMS.
Me gusta este método porque te avisa si hay relaciones en esa columna y también puede eliminarlas automáticamente. Como dice PaxDiablo, si hay relaciones, primero deben borrarse.
- mesa puestos en la vista Diseño (clic derecho en la tabla), así:
- Haga clic derecho sobre la columna en la vista Diseño de la tabla y haga clic "Eliminar columna"
En este punto, si hay alguna relación que también debería eliminarse, le preguntará si también desea eliminarla.
- 1. Erlang y MS SQL Server
- 2. PostgreSQL o MS SQL Server?
- 3. varchar (max) MS SQL Server 2000, ¿problemas?
- 4. Indexar varchar en MS SQL Server 2005
- 5. Editar sinónimos en MS SQL Server 2005
- 6. mesa Alter añadir varias columnas MS SQL
- 7. SQL: eliminación de registros duplicados en SQL Server
- 8. MS SQL Server Row GUID Columna
- 9. conectando a MS SQL Server local
- 10. MS SQL Server y JDBC: cerrado conexión
- 11. Pivotes con columnas dinámicas en SQL Server
- 12. ¿Puedo seleccionar 0 columnas en SQL Server?
- 13. SQL Server Express vs MS Access
- 14. Multiplicando dos columnas en SQL Server
- 15. ¿Cómo imitar Oracle Materialized Views en MS SQL Server?
- 16. SQL Server consulta de eliminación que implica dos tablas
- 17. Secuencia de Oracle pero luego en MS SQL Server
- 18. Pegar datos de MS Excel en SQL Server
- 19. Eliminación de múltiples nodos en Individual XQuery para SQL Server
- 20. Cómo crear un desencadenador de eliminación anterior en SQL Server?
- 21. Eliminación de tablas temporales globales (## tempTable) en SQL Server
- 22. SQL-Server: Definir columnas como mutuamente excluyentes
- 23. ¿Conectarse a MS SQL Server desde PHP en Linux?
- 24. Guía para la replicación en MS SQL Server 2008
- 25. acelerador de consultas basado en columnas en SQL Server 2012
- 26. bucle de instrucción SELECT de SQL Server ms
- 27. El tipo de datos decimales de MS SQL Server redondea
- 28. Uso de Rails 2.x con MS SQL Server 2005
- 29. SQL Server: columnas de índice utilizadas en like?
- 30. Índices de SQL Server: ¿qué columnas incluir en el índice?
posible duplicado de [¿Cómo eliminar una columna de una tabla existente?] (Http: // stackoverflow.com/questions/5626344/how-to-remove-a-column-from-an-existing-table) –
En realidad, la otra pregunta fue escrita 2 años después de esta, por lo que sería el duplicado. –