如何重命名 SQL 表中的列?

问题描述 投票:0回答:6

如何在 MS SQL 2005 中通过

alter table
重命名列?

例如:

alter table tablename rename "old col name" to "new col name"
sql sql-server sql-server-2005
6个回答
21
投票
sp_rename 'TableName.ColumnName', 'NewColumnName', 'COLUMN'

4
投票

我想在没有 sp_rename 的情况下实现它 我怎样才能改变..

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

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

文档的这一部分介绍了作为 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
投票

sp_rename
此处所述。

虽然我好像记得它并不总是能用。


1
投票

尝试将此列重命名为

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

0
投票

对于 MySQL,语法为:

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

0
投票

尝试此方法不起作用Msg 15248,Level 11,State 1,Procedure sp_rename,Line 247 [Batch Start Line 1] 要么参数 @objname 不明确,要么声明的 @objtype (COLUMN) 错误。

© www.soinside.com 2019 - 2024. All rights reserved.