如何使用T-SQL重命名列名

Vil*_*usi 40 t-sql sql-server-2008

我需要SQL Server表列的帮助.我正在尝试重命名列名,但这不起作用.

USE COST_mesta_test
GO
EXEC sp_rename '[dbo].[1965$].obec' , 'people' , 'COLUMN'
GO
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的方括号[]和路径到表"obec"的组合(例如:1965.obec; 1965 $ .obec; 1965. [obec];等等)但是我仍然得到一个错误:

参数@objname是不明确的,或者声明的@objtype(COLUMN)是错误的.

Ben*_*eno 79

我真的不明白你的桌子是如何设置的 - 即.表名,列名等 - 所以这是proc如何用于列重命名的示例:

如果我有这样一张桌子:

CREATE TABLE [dbo].[Company](
[ID] [int],
[CompanyName] [varchar](20)
)
Run Code Online (Sandbox Code Playgroud)

并且想要更改[CompanyName]列,这是命令:

EXEC sys.sp_rename 
    @objname = N'dbo.Company.CompanyName', 
    @newname = 'Name', 
    @objtype = 'COLUMN'
Run Code Online (Sandbox Code Playgroud)

我怀疑你的第一个论点是不正确的.

从文档(sp_rename(Transact-SQL))

如果要重命名的对象是表中的列,则object_name必须采用table.columnschema.table.column形式.如果要重命名的对象是索引,则object_name必须采用table.index或schema.table.index形式


Kam*_*ely 6

您还可以通过右键单击列名称并在对象资源管理器中选择"重命名"选项来更改列名称.

  • 如果要创建迁移脚本(通常这样做),通常不是一个好主意。 (4认同)
  • 问题是关于使用T-SQL重命名而不是对象资源管理器!这不是答案。 (2认同)