如何在SQL表中重命名我的列?

时间:2010-06-17 08:29:00

标签: sql sql-server sql-server-2005

如何在MS SQL 2005中通过alter table重命名列?

例如:

alter table tablename rename "old col name" to "new col name"

5 个答案:

答案 0 :(得分:19)

sp_rename 'TableName.ColumnName', 'NewColumnName', 'COLUMN'

答案 1 :(得分:4)

  

我想在不使用sp_rename的情况下制作它   我怎么能这样改变..

你做不到。您可以在表中创建一个新列,使用新名称,将旧列的内容复制到新列中,然后删除旧列(这是两个ALTER和一个UPDATE),否则只能这样做是sp_rename。

这是指向ALTER TABLE documentation的链接,您可以在其中查看可用的选项。改变不是其中之一。

本文档的这一部分介绍了您可以在ALTER TABLE的ALTER COLUMN子句中执行的操作:

ALTER COLUMN column_name 
{ 
    [ type_schema_name. ] type_name [ ( { precision [ , scale ] 
        | max | xml_schema_collection } ) ] 
    [ COLLATE collation_name ] 
    [ NULL | NOT NULL ] 
| {ADD | DROP } { ROWGUIDCOL | PERSISTED | NOT FOR REPLICATION}
}

注意,没有提到新名称。因此,重复一遍,您无法在SQL Server中使用ALTER TABLE重命名列。如果他们实现了标准语法(他们没有),那就是ALTER TABLE [table_name] RENAME {COLUMN} [column_name] TO [new_column_name]

答案 2 :(得分:2)

sp_renamehere所述。

虽然我似乎记得它不能总是被使用。

答案 3 :(得分:1)

尝试将列重命名为

EXEC sp_RENAME 'table_name.old_Column_name', 'new_Column_name', 'COLUMN'

答案 4 :(得分:0)

对于MySQL,语法为:

ALTER TABLE <db>.<table> CHANGE COLUMN <old_column_name> <new_column_name> <column_type>;