Pregunta

Si deseo simplemente cambiar el nombre de una columna (no cambiar su tipo o restricciones, solo su nombre) en una base de datos SQL usando SQL, ¿cómo lo hago? ¿O no es posible?

Esto es para cualquier base de datos que afirme que admite SQL, simplemente estoy buscando una consulta específica de SQL que funcione independientemente de la implementación de la base de datos real.

¿Fue útil?

Solución

En PostgreSQL (y muchos otros RDBMS), puede hacerlo con la declaración regular de ALTER TABLE :

=> SELECT * FROM Test1;
 id | foo | bar 
----+-----+-----
  2 |   1 |   2

=> ALTER TABLE Test1 RENAME COLUMN foo TO baz;
ALTER TABLE

=> SELECT * FROM Test1;
 id | baz | bar 
----+-----+-----
  2 |   1 |   2

Otros consejos

Específicamente para SQL Server, use sp_rename

USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO

En MySQL, la sintaxis es ALTER TABLE ... CHANGE :

ALTER TABLE <table_name> CHANGE <column_name> <new_column_name> <data_type> ...

Tenga en cuenta que no puede simplemente cambiar el nombre y dejar el tipo y las restricciones tal como están; debe volver a escribir el tipo de datos y las restricciones después del nuevo nombre de la columna.

Creo que esta es la forma más fácil de cambiar el nombre de la columna.

SP_RENAME 'TABLE_NAME.OLD_COLUMN_NAME','NEW_COLUMN_NAME'

Desafortunadamente, para una solución independiente de base de datos, necesitará saber todo sobre la columna. Si se usa en otras tablas como clave externa, también deberán modificarse.

ALTER TABLE MyTable ADD MyNewColumn OLD_COLUMN_TYPE;
UPDATE MyTable SET MyNewColumn = MyOldColumn;
-- add all necessary triggers and constraints to the new column...
-- update all foreign key usages to point to the new column...
ALTER TABLE MyTable DROP COLUMN MyOldColumn;

Para los casos más simples (sin restricciones, activadores, índices o claves), tomará las 3 líneas anteriores. Para cualquier cosa más complicada, puede ser muy complicado al completar las partes faltantes.

Sin embargo, como se mencionó anteriormente, existen métodos específicos más simples para la base de datos si sabe qué base de datos necesita modificar con anticipación.

En Informix, puedes usar:

RENAME COLUMN TableName.OldName TO NewName;

Esto se implementó antes de que el estándar SQL resolviera el problema, si se aborda en el estándar SQL. Mi copia del estándar SQL 9075: 2003 no lo muestra como estándar (entre otras cosas, RENAME no es una de las palabras clave). No sé si está realmente en SQL 9075: 2008.

En el servidor sql puedes usar

exec sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

o

sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

Puede usar el siguiente comando para cambiar el nombre de la columna de cualquier tabla en SQL Server:

exec sp_rename 'TableName.OldColumnName', 'New colunmName'

ALTER TABLE es SQL estándar. Pero no está completamente implementado en muchos sistemas de bases de datos.

El estándar sería ALTER TABLE , pero eso no es necesariamente compatible con todos los DBMS que pueda encontrar, por lo que si está buscando una sintaxis que abarque todo, puede estar fuera de suerte.

Alternativamente a SQL , puede hacerlo en Microsoft SQL Server Management Studio, desde la tabla Panel de diseño.

Primera Vía

Haz doble clic en la columna. El nombre de la columna se convertirá en un cuadro de texto editable.

Segunda Vía

  

SqlManagement Studio > > DataBases > > tables > > specificTable > > columna   Carpeta > > clic derecho en la columna > > Reman

Tercera Vía

Tabla > > RightClick > > Diseño

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top