Como alterar o nome de uma tabela usando uma consulta SQL?

117

Como posso alterar o nome da tabela usando uma instrução de consulta?

Usei a seguinte sintaxe, mas não consegui encontrar a palavra-chave renomear no SQL server 2005.

Alter table Stu_Table rename to Stu_Table_10
Lii
fonte
ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME Funciona apenas no banco de dados Oracle.
renu

Respostas:

221

Use sp_rename:

EXEC sp_rename 'Stu_Table', 'Stu_Table_10'

Você pode encontrar a documentação sobre esse procedimento no MSDN .

Se você precisar incluir um nome de esquema, ele só pode ser incluído no primeiro parâmetro (ou seja, não pode ser usado para mover uma tabela de um esquema para outro). Então, por exemplo, isso é válido:

EXEC sp_rename 'myschema.Stu_Table', 'Stu_Table_10'
David M
fonte
9
Lembre-se de que, para sp_rename, é apenas o primeiro parâmetro que pode receber um nome de Esquema, o segundo argumento DEVE estar sem o nome de Esquema. Como em EXEC sp_rename 'dbo.Stu_Table', 'Stu_Table_10'
Henrik Staun Poulsen
1
O comentário de Henrik é muito importante, isso provavelmente deve fazer parte da resposta? Me salvou de alguma dor de cabeça.
CincinnatiProgrammer
65

Em MySQL: -

RENAME TABLE `Stu Table` TO `Stu Table_10`
djairo
fonte
8
A pergunta é sobre o SQL Server, sua resposta é para o MySQL.
Sam,
7
Funcionou muito bem com MySQL.
11
Eu votei porque esta questão também é referenciada no google para mysql.
Paul Fournel de
4
Trabalhou para mim com o Mysql
Ranganatha GV
2
1 para resposta mysql como o Google me trouxe aqui também. Lembre-se de que, embora o OP marque a resposta que funcionou para eles, outras pessoas podem encontrar respostas alternativas úteis, como eu.
amonett de
15

Use no SQL Server 2005:

sp_rename old_table_name , new_table_name

vai te dar:

Cuidado: Alterar qualquer parte do nome de um objeto pode quebrar scripts e procedimentos armazenados.

mas o nome da sua mesa será alterado.

Ravindra K.
fonte
14

No Postgress SQL:

Alter table student rename to student_details;
Kamran
fonte
6

No MySQL:

RENOMEAR TABELA template_functionPARA business_function;

Devendra Singraul
fonte
2

ALTER TABLE nome_tabela RENAME TO new_table_name; funciona no MySQL também.

Captura de tela desta consulta executada no servidor MySQL

Alternativamente: RENAME TABLE table_nameTO new_table_name; Captura de tela desta consulta executada no servidor MySQL

Ashutosh K Singh
fonte
1

O Syntex para as versões mais recentes do MySQL foi alterado.

Portanto, tente o comando RENAME sem SINGLE QUOTES nos nomes das tabelas.

RENAME TABLE old_name_of_table TO new_name_of_table;

Avinash
fonte
0
RENAME TABLE old_table_name TO new_table_name;
Hazeena
fonte
-1

execute este comando

sp_rename 'Employee','EData'
Sai Gopi Me
fonte
-2

renomear o nome da tabela:

RENAME TABLE old_tableName TO new_tableName;

por exemplo:

RENAME TABLE company_name TO company_master;
pradip kor
fonte
Você poderia apontar para a documentação do SQL server 2005 onde isso é descrito?
Fabian Fagerholm