如何使用SQL查询更改表名?

126

我该如何使用查询语句更改表名?

我使用了以下语法,但是在SQL Server 2005中找不到重命名关键字。

Alter table Stu_Table rename to Stu_Table_10

ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME 只适用于 Oracle 数据库。 - renu
10个回答

238
使用 sp_rename:
EXEC sp_rename 'Stu_Table', 'Stu_Table_10'

您可以在MSDN上找到有关此过程的文档。

如果您需要包含模式名称,则只能将其包含在第一个参数中(即,无法将表从一个模式移动到另一个模式)。例如,以下是有效的:

EXEC sp_rename 'myschema.Stu_Table', 'Stu_Table_10'

10
请注意,对于sp_rename存储过程,只有第一个参数可以带模式名称,第二个参数必须不带模式名称。就像EXEC sp_rename 'dbo.Stu_Table','Stu_Table_10'一样。 - Henrik Staun Poulsen
1
Henrik的评论非常重要,这可能应该成为答案的一部分?这让我免去了一些麻烦。 - CincinnatiProgrammer

69

MySQL 中:

RENAME TABLE `Stu Table` TO `Stu Table_10`

9
这个问题是关于 SQL Server 的,你的答案是针对 MySQL 的。 - Sam
14
我点赞了,因为这个问题在谷歌搜索MySQL时会被引用。 - Paul Fournel
4
MySQL对我有用。 - Ranganatha G V
3
+1 对于 MySQL 的答案,因为谷歌把我带到了这里。请记住,即使 OP 选择了对他们有用的答案,其他人可能会发现其他答案也很有用,就像我一样。 - amonett

18

在PostgreSQL中:

Alter table student rename to student_details;

17

请在 SQL Server 2005 上使用此代码:

sp_rename old_table_name , new_table_name

它将会给你:

注意:更改对象名称的任何部分可能会破坏脚本和存储过程。

但是你的表名将会被更改。


6

在MySQL中:

template_function表重命名为business_function


3

在MySQL中,可以使用以下命令重命名表名:

ALTER TABLE table_name RENAME TO new_table_name;

另一种方式是使用如下命令:

RENAME TABLE table_name TO new_table_name;

在MySQL服务器中运行此查询的屏幕截图

在MySQL服务器中运行此查询的屏幕截图


2

最新版本的MySQL语法已经发生了变化。

因此,在表名中尝试使用RENAME命令不需要使用单引号

RENAME TABLE old_name_of_table TO new_name_of_table;


1
RENAME TABLE old_table_name TO new_table_name;

-1

执行此命令

sp_rename 'Employee','EData'

-1

重命名表名:

RENAME TABLE old_tableName TO new_tableName;

例如:

RENAME TABLE company_name TO company_master;

你能指出SQL Server 2005文档中描述这个的地方吗? - Fabian Fagerholm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接