重命名列(数据库引擎)
适用于:SQL Server 2016 (13.x) 及更高版本 Azure SQL 数据库 Azure SQL 托管实例
可以使用 SQL Server 或 SQL Server Management Studio 重命名 Transact-SQL 中的表列。
限制
重命名列将不会自动重命名对该列的引用。 您必须手动修改引用已重命名列的任何对象。 例如,如果您重命名表列,并且触发器中引用了该列,则必须修改触发器以反映新的列名。 请使用 sys.sql_expression_dependencies 在重命名对象之前列出对象的依赖关系。
重命名列不会自动更新从该表中(使用 *
)SELECT
所有列的任何对象的元数据。 例如,如果重命名表列,并且该列由非架构绑定视图或(使用 *
)选择所有列的函数引用,则视图或函数的元数据将继续反映原始列名。 使用 sp_refreshsqlmodule 或 sp_refreshview 刷新元数据。
权限
需要对对象拥有 ALTER
权限。
使用 SQL Server Management Studio
使用对象资源管理器重命名列
- 在 “对象资源管理器” 中,连接到 数据库引擎的实例。
- 在“对象资源管理器”中,右键单击要重命名其中的列的表,再选择“重命名”。
- 键入新的列名称。
使用表设计器重命名列
- 在“对象资源管理器”中,右键单击要为其重命名列的表,再选择“设计”。
- 在 “列名”下,选择要更改的名称,并键入新名称。
- 在“文件”菜单上,选择“保存table_name” 。
您也可以在 “列属性” 选项卡中更改列名。选择要更改名称的列,并为 “名称” 键入新值。
使用 Transact-SQL
重命名列
下面的示例将 AdventureWorksLT
数据库中表 dbo.ErrorLog
内的 ErrorTime
列重命名为 ErrorDateTime
。
EXEC sp_rename 'dbo.ErrorLog.ErrorTime', 'ErrorDateTime', 'COLUMN';
请注意输出警告,并验证其他对象或查询是否未损坏:
Caution: Changing any part of an object name could break scripts and stored procedures.
有关详细信息,请参阅 sp_rename。