重命名SQL Server中的表

430 阅读7分钟

重命名SQL Server中的表

根据你用来管理SQL Server的客户端应用程序,在SQL Server中重命名表有多种方法。在这里,请学习其中的5种方法。

重命名数据库中的表是DBA最常执行的任务之一。在这篇文章中,你将看到如何在SQL Server中重命名表。

根据你用来管理SQL Server的客户端应用程序,在SQL Server中有多种重命名表的方法。其中一些方法涉及文本查询,而其他方法允许你通过GUI重命名SQL Server中的表。

在这篇文章中,你将看到在SQL Server中重命名表的五种主要方式。

  1. SQLCMD工具

  2. SQL Server Management Studio 查询窗口

  3. SQL Server Management Studio GUI

  4. dBForge Studio for SQL Server中的SQL查询窗口

  5. dBForge Studio for SQL Server中的图形用户界面

作为一个例子,您将在SALES数据库中重命名一个虚构的 "项目 "表。以下脚本可用于创建这样一个表。

CREATE DATABASE SALES
USE SALES
CREATE TABLE Item (
Id INT,
Name varchar(255),
    Price FLOAT
);

使用SQLCMD工具重命名表

SQLCMD是一个命令行工具,可以用来对SQL Server进行各种操作。SQLCMD工具也可以用来重命名SQL中的表。

要在窗口中打开该工具,打开 "运行 "外壳,并输入命令sqlcmd -S server_name -E。在这里,"E "指定了访问SQL服务器的Windows验证功能已经启用。如果没有启用Windows认证,你必须用**-U your_user -P your_password命令代替-E**。

SQLCMD工具将被打开,你可以执行SQL命令,对你的SQL服务器实例进行不同的操作。

在我们从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.Items' ,你想把它重命名为'Items' ,下面的脚本就会产生一个错误。

USE SALES
EXEC sp_rename 'Product.Items', 'Items' 

该错误说,在当前数据库中找不到名称为'Product.Items' 的项目。

要重命名一个名称中含有点的表,你必须把表名放在方括号内,如下面的脚本所示。

USE SALES
EXEC sp_rename '[Product.Items]', 'Items'  

从下面的输出中,你可以看到没有错误或警告,这意味着该表已经成功地被重命名。

使用SQL Server Management Studio重命名表

SQL Server Management Studio是微软开发的一个基于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的主仪表板上单击 "新查询"选项,如以下截图所示。

在下面的截图中,你也可以看到 "SALES "数据库中的 "项目 "表。这就是你要重命名的表。

通过SQL查询窗口重命名表的脚本与你在SQLCMD中执行的查询相同。你必须执行sp_rename 存储过程,如下面的脚本所示。

USE SALES
EXEC sp_rename 'Item', 'Product' 

在输出信息窗口中,如下面的截图所示,你可以再次看到警告你改变对象名称会破坏脚本的信息。

你可以使用下面的命令来查看你的表是否被重新命名。

另外,你也可以右击数据库,即SALES->表,然后点击选项列表中的 "刷新 "按钮。你会看到你的重命名的表。

SELECT name FROM SALES.sys.tables 

值得一提的是,就像你在SQLCMD工具中看到的那样,重命名一个名称中包含点运算符的表,需要将表名括在方括号内。

例如,如果你想把'Product.Items' 表重命名为'Items' ,下面的查询会出现错误。

USE SALES
EXEC sp_rename 'Product.Items', 'Items'

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

使用SSMS GUI重命名表

SQL Server Management Studio提供了很多一键式选项来执行不同的任务。你可以通过SQL Server Management Studio GUI重命名一个表。

要做到这一点,右键单击你想重命名的表。从出现的选项列表中选择重命名,如下面的截图所示。

你会看到,你想重命名的表的文本编辑选项将被启用,如下图所示。

在这里输入你的表的新名称,然后点击回车。您的表将被重新命名。

使用dBForge Studio for SQL Server重命名表

dBForge Studio for SQL Server是一个灵活的集成开发环境,它允许你使用一个易于使用的图形用户界面在SQL Server上执行一系列的数据库管理、管理和操作任务。

dBForge Studio for SQL Server还允许你重命名SQL Server中的表。

就像SQL Server Management Studio一样,你有两个选择来重命名表。您可以使用查询窗口,在那里您可以执行重命名表的SQL脚本,或者您可以通过右键单击表名,然后重命名,直接重命名表。你将在本节中看到这两个选项。

将dBForge Studio与SQL服务器连接起来

在您通过dBForge Studio对SQL Server进行任何操作之前,您首先必须将dBForge Studio与SQL Server实例连接。

要做到这一点,请点击dBForge Studio主仪表板上的新连接按钮。

您将看到数据库连接属性窗口,如下图所示。在这里,输入你要连接的SQL Server实例的名称,以及认证模式。如果需要的话,输入你的用户和密码,然后点击测试连接按钮。

如果你的连接是成功的,你将看到以下信息。

在dBForge Studio中使用SQL查询窗口重命名表

要在dbForge Studio for SQL Server中使用SQL查询窗口重命名表,请点击顶部菜单中的新SQL选项。一个空的查询窗口将打开,您可以在这里执行您的SQL查询。请看下面的屏幕截图作为参考。

重命名一个表的查询与你在前面几节中的查询相同。

你使用sp_rename 存储过程。

下面的脚本将你在SALES 数据库中的'Item' 表重命名为'Product'

USE SALES
EXEC sp_rename 'Item', 'Product'  

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

要想知道Item 表是否真的被重命名了,请运行下面的脚本。

SELECT name FROM SALES.sys.tables

在输出中,SALES数据库现在包含 "产品 "表而不是 "项目 "表。

正如你在SQLCMD和SQL Server Management Studio中看到的那样,如果需要重命名的表包含一个点(.)符号,你就必须在SQL脚本中把表名放在方括号里。

在dBForge Studio中使用GUI重命名表

要通过dBForge studio的GUI界面重命名表,只需右键单击您要重命名的表。从选项列表中,选择重命名,如下图所示。

输入你的表的新名称。在下面的截图中,我们把Item表重命名为Product。点击回车键

最后,从下面的信息框中点击 "是 "按钮来重命名你的表。