如何在 MS SQL 2005 中通过
alter table
重命名列?
例如:
alter table tablename rename "old col name" to "new col name"
sp_rename 'TableName.ColumnName', 'NewColumnName', 'COLUMN'
我想在没有 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]
尝试将此列重命名为
EXEC sp_RENAME 'table_name.old_Column_name', 'new_Column_name', 'COLUMN'
对于 MySQL,语法为:
ALTER TABLE <db>.<table> CHANGE COLUMN <old_column_name> <new_column_name> <column_type>;
尝试此方法不起作用Msg 15248,Level 11,State 1,Procedure sp_rename,Line 247 [Batch Start Line 1] 要么参数 @objname 不明确,要么声明的 @objtype (COLUMN) 错误。