SQL Server 重命名表

2025年3月17日 | 阅读 3 分钟

当表名不再相关或不再服务于创建目的时,我们可以更改它。 SQL Server 没有提供直接更改表名的命令。但是,它有一个名为 sp_rename 的存储过程,可以让我们重命名表。在更改表名之前,必须确保我们对该对象具有 ALTER 权限。

限制和约束

SQL Server 在重命名表时有一些限制,因为当我们重命名表时,这并不意味着对该表的所有引用也将被重命名。我们必须手动修改属于重命名表的所有对象。

例如,如果我们想更改也在触发器中引用的表名,则需要修改触发器以反映新的表名。 sys.sql_expression_dependencies 可用于在更改名称之前列出对象的所有依赖项。

我们可以在 SQL Server 中通过两种方式更改表名

  • SQL 查询
  • SQL Server Management Studio (SSMS)

在更改表名之前,我们必须非常小心。引用该表的现有查询、视图、用户定义函数、存储过程或程序将由于名称更改而变得无效。

SQL 查询

SQL Server 提供了一个名为 SP_RENAME 的标准存储过程,用于重命名当前数据库中用户创建的对象。用户创建的对象可以是表或列。

以下语法用于重命名表

示例

我们可以使用下面的 employee 表演示重命名表

SQL Server Rename Table

现在,我们将使用 sp_rename 存储过程语法将 employee 表的名称更改为 employee_info。 这是查询

执行此语句时,SQL Server 显示以下消息

SQL Server Rename Table

我们将收到此消息,因为在重命名表时,SQL Server 不会自动更改与该表关联的任何引用的名称。 但是,表已成功重命名。 我们可以通过执行 SELECT 语句来验证表是否已重命名

SQL Server Rename Table

SQL Server Management Studio (SSMS)

SSMS 是一个 GUI 工具,允许我们通过以下方式更改表名

  • 使用对象资源管理器重命名表
  • 双击表名

让我们详细讨论它们中的每一个。

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

以下步骤用于使用对象资源管理器重命名表

步骤 1: 转到数据库 -> 表菜单并展开它。

步骤 2: 选择所需的表,右键单击它,然后选择 Rename 选项。

下图解释了所有上述步骤,我们已将 'cust_order' 表重命名为 'customer_order'

SQL Server Rename Table

步骤 3: 当我们单击重命名选项时,表名将变为可编辑状态。 为您选择的表键入一个新名称,然后按 Enter。 如果收到任何提示消息,请单击“是”按钮。

SQL Server Rename Table

步骤 4: 刷新数据库或表以完成重命名步骤。

步骤 5: 执行 SELECT 语句以验证更改后的表名。

双击表名

我们可以使用以下步骤使用双击来重命名表

步骤 1: 转到数据库 -> 表。

步骤 2: 选择要更改的表并双击它。 我们可以看到表名已更改为可编辑形式。 请参见下图

SQL Server Rename Table

步骤 3: 为您选择的表键入一个新名称,按 Enter,然后刷新数据库或表以完成重命名步骤。

结论

本文通过存储过程“sp_rename”和 SQL Server Management Studio 完整概述了如何更改数据库中的表名。 始终建议使用 T-SQL 查询对数据库或表进行任何更改。 使用 SSMS 重命名表不是一个好主意,因为它会使 DBA 的工作更难以理解。


下一个主题SQL Server 截断表