sp_rename nombre name eliminar columna column change cambiar sql-server sql-server-2005

sql-server - nombre - rename sql server



Eliminando columnas en MS SQL Server (4)

¿Cómo elimino una columna de una tabla existente?


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 puede necesitar hacer primero.

  • Si hay referencias de claves externas a la columna, primero tendrá que deshacerse de ellas.
  • Si hay un índice que usa 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 e insert into ... select from para transferir las columnas que no quiero eliminar

Uno de los lanzamientos posteriores 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 ya no se puede hacer referencia a él y hay un comando en las líneas de 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.


Esto también se puede hacer a través de la GUI de SSMS.

Me gusta este método porque te advierte si hay relaciones en esa columna y también puede eliminarlas automáticamente. Como dice PaxDiablo, si hay relaciones, primero deben borrarse.

  1. Coloque la tabla en la vista Diseño (haga clic derecho en la tabla) como sigue:

  1. Haga clic derecho en la columna en la vista Diseño de la tabla y haga clic en "Eliminar columna"

En este punto, si hay alguna relación que también debería eliminarse, le preguntará si también desea eliminarla.


Para 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.


ALTER TABLE XXX DROP COLUMN YYY;