Come modificare il nome di una tabella utilizzando una query SQL?


117

Come posso modificare il nome della tabella utilizzando un'istruzione di query?

Ho usato la seguente sintassi ma non sono riuscito a trovare la parola chiave rename in SQL Server 2005.

Alter table Stu_Table rename to Stu_Table_10

ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME Funziona solo in Oracle DB.
renu

Risposte:


221

Usa sp_rename:

EXEC sp_rename 'Stu_Table', 'Stu_Table_10'

È possibile trovare la documentazione su questa procedura su MSDN .

Se è necessario includere un nome di schema, questo può essere incluso solo nel primo parametro (ovvero, questo non può essere utilizzato per spostare una tabella da uno schema a un altro). Quindi, ad esempio, questo è valido:

EXEC sp_rename 'myschema.Stu_Table', 'Stu_Table_10'

9
Ricorda che per sp_rename è solo il primo parametro che può assumere un nome Schema, il secondo argomento DEVE essere senza il nome Schema. Come in EXEC sp_rename 'dbo.Stu_Table', 'Stu_Table_10'
Henrik Staun Poulsen

1
Il commento di Henrik è piuttosto importante, questo dovrebbe probabilmente essere parte della risposta? Mi ha salvato da qualche mal di testa.
CincinnatiProgrammer

65

In MySQL: -

RENAME TABLE `Stu Table` TO `Stu Table_10`

8
La domanda riguarda SQL Server, la tua risposta è per MySQL.
Sam

7
Ha funzionato alla grande con MySQL.

11
Ho votato positivamente perché questa domanda è referenziata anche in google per mysql.
Paul Fournel

4
Ha lavorato per me con Mysql
Ranganatha GV

2
+1 per la risposta di mysql poiché Google mi ha portato anche qui. Ricorda anche se OP spunta la risposta che ha funzionato per loro, altri potrebbero trovare risposte alternative utili come me.
amonett

15

Utilizzare questo su SQL Server 2005:

sp_rename old_table_name , new_table_name

ti darà:

Attenzione: la modifica di qualsiasi parte del nome di un oggetto potrebbe interrompere gli script e le procedure memorizzate.

ma il nome del tuo tavolo verrà cambiato.


14

In Postgress SQL:

Alter table student rename to student_details;


2

ALTER TABLE nome_tabella RENAME TO new_table_name; funziona anche in MySQL.

Schermata di questa query eseguita nel server MySQL

In alternativa: RINOMINA TABELLA table_nameA new_table_name; Schermata di questa query eseguita nel server MySQL


1

La sintassi per le ultime versioni di MySQL è stata modificata.

Quindi prova il comando RENAME senza SINGLE QUOTES nei nomi delle tabelle.

RENAME TABLE old_name_of_table TO new_name_of_table;




-2

rinomina il nome della tabella:

RENAME TABLE old_tableName TO new_tableName;

per esempio:

RENAME TABLE company_name TO company_master;

Potrebbe indicare la documentazione di SQL Server 2005 dove viene descritto?
Fabian Fagerholm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.