重命名数据库中的表是DBA最常见的任务之一。在本文中,您将看到如何在SQL Server中重命名表。
根据用于管理SQL Server的客户端应用程序,有多种方法可以重命名SQL Server中的表。其中一些方法涉及文本查询,而其他方法允许您通过GUI在SQL Server中重命名表。
在本文中,您将看到在SQL Server中重命名表的五种主要方法:
1.SQLCMD实用程序
2.SQL Server Management Studio查询窗口
3.SQL Server管理Studio GUI
4.用于SQL Server的dBForge Studio中的SQL查询窗口
5.用于SQL Server的dBForge Studio中的GUI
例如,您将重命名SALES数据库中虚构的“Item”表。以下脚本可用于创建这样的表。
CREATE DATABASE SALES
USE SALES
CREATE TABLE Item (
Id INT,
Name varchar(255),
Price FLOAT
);
使用SQLCMD实用程序重命名表
SQLCMD是一个命令行工具,可用于在SQL Server上执行各种操作。SQLCMD实用程序还可以用于在SQL中重命名表。
要在windows中打开该实用程序,请打开“运行”shell,然后输入命令sqlcmd-S server_name-E。此处,“E”指定启用windows身份验证以访问SQL server。如果未启用Windows身份验证,则必须将-E替换为-U your_user-P your_ password命令。

SQLCMD实用程序将打开,您可以在其中执行SQL命令以在SQL Server实例上执行不同的操作。

在从SALES表重命名Item表之前,首先打印表名。您可以这样做:
SELECT name FROM SALES.sys.tables
在输出中,您将看到SALES数据库中所有表的名称,如以下输出所示:

没有可用于在SQL Server中重命名表的直接SQL查询。您需要执行sp_rename存储过程来重命名SQL Server中的表。
通过sp_rename存储过程在SQL Server中重命名表的语法如下:
EXEC sp_rename 'old_table_name', 'new_table_name'
例如,您将把“Item”表重命名为“Product”。以下是您如何通过SQLCMD实用程序完成此操作:

从上述命令的输出中,您可以看到一条警告,指出更改对象名称的任何部分都有可能破坏脚本和存储过程。
此警告很重要,因为如果您有一个使用名称“Item”与“Item表”交互的脚本,则该脚本将不再执行,因为表名已更改。
最后,要查看表是否已实际重命名,可以再次执行以下脚本:
SELECT name FROM SALES.sys.tables

如上所述,表“Item”已重命名为Product。
需要注意的是,如果原始表名中包含点[.],则无法直接重命名。
例如,如果您的SALES表有一个表“Product”。要重命名为“项目”的“项目”,以下脚本将引发错误:
USE SALES
EXEC sp_rename 'Product.Items', 'Items'

错误表明没有名为“产品”的项目。在当前数据库中找不到项。
要重命名名称中包含点的表,必须将表名括在方括号内,如以下脚本所示:
USE SALES
EXEC sp_rename '[Product.Items]', 'Items'
从下面的输出中,您可以看到没有错误或警告,这意味着该表已成功重命名。

使用SQL Server Management Studio重命名表
SQL Server Management Studio是Microsoft开发的基于GUI的工具,允许您与SQL Server实例交互。SQL Server Management Studio还可以用于重命名SQL Server中的表。
通过SQL Server Management Studio重命名SQL Server表有两种主要方法。您可以使用SQL Server查询窗口,也可以通过鼠标右键单击GUI直接重命名表。您将在以下部分中看到这两种方法:
使用SQL查询窗口重命名表
要通过SQL Server Management Studio中的SQL查询窗口重命名表,请从SQL Server Management Studio的主仪表板中单击“新建查询”选项,如以下屏幕截图所示。
您还可以在下面的屏幕截图中看到“销售”数据库中的“项目”表。这是您将要重命名的表。

通过SQL查询窗口重命名表的脚本与在SQLCMD中执行的查询相同。您必须执行sp_rename存储过程,如以下脚本所示。
USE SALES
EXEC sp_rename 'Item', 'Product'
在输出消息窗口中,如以下屏幕截图所示,您可以再次看到警告您更改对象名称可能会破坏脚本的消息。

您可以使用下面的命令查看表是否已重命名。
或者,您可以右键单击数据库,即SALES->Tables,然后从选项列表中单击“刷新”按钮。您将看到重命名的表。
SELECT name FROM SALES.sys.tables

值得一提的是,正如您在SQLCMD实用程序中看到的,重命名名称包含点运算符的表需要将表名括在方括号内。
例如,如果您想重命名“产品”。“项目”表到“项目”,以下查询将通过一个错误:
USE SALES
EXEC sp_rename 'Product.Items', 'Items'

另一方面,将表名括在方括号内将导致成功重命名表,如下面脚本的输出所示:

使用SSMS GUI重命名表
SQL Server Management Studio提供了许多一键式选项来执行不同的任务。您可以通过SQL Server Management Studio GUI重命名表。
为此,右键单击要重命名的表。从出现的选项列表中选择重命名,如以下屏幕截图所示。

您将看到,要重命名的表将启用文本编辑选项,如下面的屏幕截图所示。
在此处输入表的新名称,然后单击enter。

使用dBForge Studio for SQL Server重命名表
dBForge Studio for SQL Server是一个灵活的IDE,允许您使用易于使用的GUI在SQL Server上执行一系列数据库管理、管理和操作任务。
dBForge Studio for SQL Server还允许您重命名SQL Server中的表。
与SQLServerManagementStudio一样,您有两个重命名表的选项。您可以使用“查询”窗口执行SQL脚本来重命名表,也可以通过右键单击表名然后重命名来直接重命名表。您将在本节中看到这两个选项。
将dBForge Studio与SQL Server连接
在通过dBForge Studio在SQL Server上执行任何操作之前,首先必须将dBForge工作室与SQL Server实例连接起来。
为此,请单击dBForge Studio主仪表板上的“新建连接”按钮。

您将看到数据库连接属性窗口,如下所示。在此处,输入要连接到的SQL Server实例的名称以及身份验证模式。如果需要,请输入用户和密码,然后单击“测试连接”按钮。
如果连接成功,您将看到以下消息:

在dBForge Studio中使用SQL查询窗口重命名表
要使用dbForge Studio for SQL Server中的SQL查询窗口重命名表,请单击顶部菜单中的“新建SQL”选项。将打开一个空的查询窗口,您可以在其中执行SQL查询。查看以下屏幕截图以供参考:

重命名表的查询与前几节中的查询相同。
使用sp_rename存储过程。
以下脚本将销售数据库中的“项目”表重命名为“产品”。
USE SALES
EXEC sp_rename 'Item', 'Product'

下面的输出显示查询成功。

要查看项目表是否已实际重命名,请运行以下脚本:
SELECT name FROM SALES.sys.tables
在输出中,销售数据库现在包含“产品”表,而不是“项目”表。

正如您在SQLCMD和SQLServerManagementStudio中看到的,如果必须重命名的表包含点(.)符号,则必须在SQL脚本中将表名括在方括号内。
在dBForge Studio中使用GUI重命名表
要通过dBForge studio中的GUI界面重命名表,只需右键单击要重命名的表。从选项列表中,选择重命名,如下面的屏幕截图所示:

输入表的新名称。在下面的屏幕截图中,我们将Item表重命名为Product。单击Enter键。

最后,单击下面消息框中的“是”按钮以重命名表。

原文标题:Renaming Tables in SQL Server
原文作者:Ben Richardson
原文链接:https://dzone.com/articles/renaming-tables-in-sql-server




