Estoy usando SQL Server 2008 y Navicat. Necesito cambiar el nombre de una columna en una tabla usando SQL.
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
Esta afirmación no funciona.
sql
sql-server
sql-server-2008
alter-table
Serhio g. Lazin
fuente
fuente
Respuestas:
Utilizar
sp_rename
Consulte: SERVIDOR SQL: cómo cambiar el nombre de una columna o de una tabla
Documentación: sp_rename (Transact-SQL)
Para su caso sería:
Recuerde usar comillas simples para encerrar sus valores.
fuente
EXEC sp_RENAME '[TableName].[OldColumnName]', 'NewColumnName', 'COLUMN'
alter table
que pueden fallar si existen tales restricciones.Alternativamente
SQL
, puede hacerlo en Microsoft SQL Server Management Studio. Aquí hay algunas formas rápidas de usar la GUI:Primera forma
Haga doble clic lento en la columna. El nombre de la columna se convertirá en un cuadro de texto editable.
Segunda forma
Haga clic derecho en la columna y elija Cambiar nombre en el menú contextual.
Por ejemplo:
Tercera forma
De esta manera es preferible cuando necesita cambiar el nombre de varias columnas de una vez.
Por ejemplo:
NOTA: Sé que OP solicitó específicamente una solución SQL, pensé que esto podría ayudar a otros :)
fuente
Tratar:
fuente
También debe especificar el esquema de la tabla o puede obtener este error:
Si se trata de un script de implementación, también recomendaría agregarle seguridad adicional.
fuente
Sería una buena sugerencia utilizar una función ya incorporada, pero otra forma de hacerlo es:
El beneficio detrás de usar el
sp_rename
es que se encarga de todas las relaciones asociadas con él.De la documentación :
fuente
Puede usar
sp_rename
para cambiar el nombre de una columna.El primer parámetro es el objeto a modificar, el segundo parámetro es el nuevo nombre que se le dará al objeto, y el tercer parámetro COLUMN informa al servidor que el cambio de nombre es para el
column
, y también se puede usar para cambiar el nombretables
,index
yalias data type
.fuente
Como a menudo vengo aquí y luego me pregunto cómo usar los corchetes, esta respuesta podría ser útil para personas como yo.
OldColumnName
no debe estar adentro[]
. No funcionará.NewColumnName
en[]
, que se traducirá en[[NewColumnName]]
.fuente
Sql Server Management Studio tiene algunos procedimientos almacenados (SP) definidos por el sistema,
uno de los cuales se utiliza para cambiar el nombre de una columna. El SP es sp_rename
Sintaxis: sp_rename '[nombre_tabla] .old_column_name', 'new_column_name'
Para obtener más ayuda, consulte este artículo: sp_rename por Microsoft Docs
Nota: Al ejecutar este SP, el servidor sql le dará un mensaje de precaución como ' Precaución: cambiar cualquier parte del nombre de un objeto podría romper los scripts y los procedimientos almacenados '. Esto es crítico solo si ha escrito su propio sp que involucra la columna en la tabla que estás a punto de cambiar.
fuente
Versión mejorada de @Taher
fuente
O simplemente puede hacer clic dos veces lentamente en la columna en SQL Management Studio y cambiarle el nombre a través de la interfaz de usuario ...
fuente
Ejecutar consulta:
fuente