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

时间:2012-02-20 00:56:02

标签: sql-server-2008 tsql

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

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

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

  

参数@objname是不明确的或声称的@objtype   (COLUMN)错了。

2 个答案:

答案 0 :(得分:70)

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

如果我有这样的桌子:

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

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

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

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

来自文档(sp_rename (Transact-SQL)

  

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

形式

答案 1 :(得分:7)

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