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

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'

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`

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.


14

No Postgress SQL:

Alter table student rename to student_details;


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


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;




-2

renomear o nome da tabela:

RENAME TABLE old_tableName TO new_tableName;

por exemplo:

RENAME TABLE company_name TO company_master;

Você poderia apontar para a documentação do SQL server 2005 onde isso é descrito?
Fabian Fagerholm
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.