2012-02-20 21 views
30

Necesito ayuda con SQL Server Table Column. Estoy intentando cambiar el nombre de la columna, pero esto no funciona.cómo cambiar el nombre de la columna con T-SQL

USE COST_mesta_test 
GO 
EXEC sp_rename '[dbo].[1965$].obec' , 'people' , 'COLUMN' 
GO 

Probé diferentes combinaciones de corchetes [] y la ruta a la mesa "obec" (por ejemplo: 1965.obec; 1965 $ .obec; 1965. [obec]; etc.) Pero aún así me sale un error:

Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.

Respuesta

54

Realmente no entiendo cómo está configurada su tabla, es decir. el nombre de la tabla, el nombre de columna, etc - por lo que este es un ejemplo de cómo funciona el proc para la columna cambia el nombre de:

Si tuviera una tabla como la siguiente:

CREATE TABLE [dbo].[Company](
[ID] [int], 
[CompanyName] [varchar](20) 
) 

y quería cambiar la columna de la [CompanyName], este es el comando:

EXEC sys.sp_rename 
    @objname = N'dbo.Company.CompanyName', 
    @newname = 'Name', 
    @objtype = 'COLUMN' 

Sospecho que su primer argumento es incorrecto.

De la documentación (sp_rename (Transact-SQL))

If the object to be renamed is a column in a table, object_name must be in the form table.column or schema.table.column. If the object to be renamed is an index, object_name must be in the form table.index or schema.table.index

7

También puede cambiar el nombre de la columna, haga clic en el nombre de la columna y eligiendo 'Cambiar nombre' opción en el Explorador de objetos.

+0

+1 para mostrar una forma de cambiar el nombre a través de la interfaz de usuario. –

+1

Por lo general, no es una buena idea si desea crear scripts de migración (que a menudo hace). –

+0

¡La pregunta es sobre cambiar el nombre con T-SQL no objeto explorador! No es una respuesta. – QMaster

Cuestiones relacionadas