重命名列(数据库引擎)

适用于: SQL Server 2016 (13.x) 及更高版本 Azure SQL 数据库Azure SQL 托管实例

可以使用 SQL Server 或 SQL Server Management Studio 重命名 Transact-SQL 中的表列。

限制和局限

重命名列将不会自动重命名对该列的引用。 您必须手动修改引用已重命名列的任何对象。 例如,如果您重命名表列,并且触发器中引用了该列,则必须修改触发器以反映新的列名。 请使用 sys.sql_expression_dependencies 在重命名对象之前列出对象的依赖关系。

重命名列不会自动更新从该表中(使用 *)选择所有列的任何对象的元数据。 例如,如果重命名表列,并且该列由非架构绑定视图或(使用 *)选择所有列的函数引用,则视图或函数的元数据将继续反映原始列名。 使用 sp_refreshsqlmodulesp_refreshview 刷新元数据。

权限

需要对对象的 ALTER 权限。

使用 SQL Server Management Studio

使用对象资源管理器重命名列

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。
  2. 在“对象资源管理器”中,右键单击要重命名其中的列的表,再选择“重命名”
  3. 键入新的列名称。

使用表设计器重命名列

  1. 在“对象资源管理器”中,右键单击要为其重命名列的表,再选择“设计”
  2. “列名”下,选择要更改的名称,并键入新名称。
  3. 在“文件”菜单上,选择“保存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 (Transact-SQL)

后续步骤