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


117

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

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

Alter table Stu_Table rename to Stu_Table_10

ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME仅在Oracle DB中有效。
renu

Answers:


221

使用sp_rename:

EXEC sp_rename 'Stu_Table', 'Stu_Table_10'

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

如果需要包括模式名称,则只能将其包含在第一个参数中(即,不能用于将表从一个模式移动到另一个模式)。因此,例如,这是有效的:

EXEC sp_rename 'myschema.Stu_Table', 'Stu_Table_10'

9
请记住,对于sp_rename,只有第一个参数可以采用模式名称,第二个参数必须不带模式名称。如在EXEC sp_rename 'dbo.Stu_Table', 'Stu_Table_10'
的Henrik Staun波尔森

1
Henrik的评论非常重要,这可能应该是答案的一部分?使我免于头痛。
CincinnatiProgrammer

65

MySQL:-

RENAME TABLE `Stu Table` TO `Stu Table_10`

8
问题是关于SQL Server,您的答案是MySQL。
山姆

7
与MySQL配合良好。

11
我赞成,因为这个问题也在mysql的google中被引用。
Paul Fournel

4
与我合作使用Mysql
Ranganatha GV

2
+1为mysql回答,因为Google也把我带到了这里。请记住,即使OP勾选了对他们有用的答案,其他人也可能会找到其他有用的答案,例如我自己。
amonett

15

请在SQL Server 2005上使用:

sp_rename old_table_name , new_table_name

它会给你:

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

但是您的表名将被更改。


14

在Postgress SQL中:

Alter table student rename to student_details;


2

ALTER TABLE table_name重命名为new_table_name; 在MySQL中也可以使用。

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

或者:RENAME TABLE table_nameTO new_table_name; 在MySQL服务器中运行此查询的屏幕截图


1

最新MySQL版本的Syntex已更改。

因此,请尝试在表名中不使用单引号的 RENAME命令。

RENAME TABLE old_name_of_table TO new_name_of_table;




-2

重命名表名:

RENAME TABLE old_tableName TO new_tableName;

例如:

RENAME TABLE company_name TO company_master;

您能否指向SQL Server 2005文档进行描述?
Fabian Fagerholm'7
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.