Wie ändere ich einen Tabellennamen mit einer SQL-Abfrage?

117

Wie kann ich den Tabellennamen mithilfe einer Abfrageanweisung ändern?

Ich habe die folgende Syntax verwendet, aber das Schlüsselwort zum Umbenennen in SQL Server 2005 nicht gefunden.

Alter table Stu_Table rename to Stu_Table_10
Lii
quelle
ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME Funktioniert nur in Oracle DB.
Renu

Antworten:

221

Verwenden Sie sp_rename:

EXEC sp_rename 'Stu_Table', 'Stu_Table_10'

Dokumentation zu diesem Verfahren finden Sie auf MSDN .

Wenn Sie einen Schemanamen angeben müssen, kann dieser nur im ersten Parameter enthalten sein (dh dies kann nicht zum Verschieben einer Tabelle von einem Schema in ein anderes verwendet werden). Das ist zum Beispiel gültig:

EXEC sp_rename 'myschema.Stu_Table', 'Stu_Table_10'
David M.
quelle
9
Bitte denken Sie daran, dass für sp_rename nur der erste Parameter einen Schemanamen annehmen kann, das zweite Argument MUSS ohne den Schemanamen sein. Wie in EXEC sp_rename 'dbo.Stu_Table', 'Stu_Table_10'
Henrik Staun Poulsen
1
Henriks Kommentar ist ziemlich wichtig, sollte dies wahrscheinlich Teil der Antwort sein? Hat mich vor Kopfschmerzen gerettet.
CincinnatiProgrammer
65

In MySQL: -

RENAME TABLE `Stu Table` TO `Stu Table_10`
Djairo
quelle
8
Die Frage bezieht sich auf SQL Server, Ihre Antwort ist für MySQL.
Sam
7
Funktionierte hervorragend mit MySQL.
11
Ich habe positiv gestimmt, weil diese Frage auch in Google für MySQL referenziert wird.
Paul Fournel
4
Arbeitete für mich mit MySQL
Ranganatha GV
2
+1 für MySQL-Antwort, da Google mich auch hierher gebracht hat. Denken Sie daran, auch wenn OP die Antwort ankreuzt, die für sie funktioniert hat, finden andere möglicherweise alternative Antworten nützlich, wie ich.
Amonett
15

Verwenden Sie dies unter SQL Server 2005:

sp_rename old_table_name , new_table_name

es wird dir geben:

Achtung: Durch Ändern eines Teils eines Objektnamens können Skripte und gespeicherte Prozeduren beschädigt werden.

Ihr Tabellenname wird jedoch geändert.

Ravindra K.
quelle
14

In Postgress SQL:

Alter table student rename to student_details;
Kamran
quelle
6

In MySQL:

TABELLE UMBENENNEN template_functionAUF business_function;

Devendra Singraul
quelle
2

ALTER TABLE Tabellenname RENAME TO new_table_name; funktioniert auch in MySQL.

Screenshot dieser Abfrage, die auf dem MySQL-Server ausgeführt wird

Alternativ: TABELLE UMBENENNEN table_nameAUF new_table_name; Screenshot dieser Abfrage, die auf dem MySQL-Server ausgeführt wird

Ashutosh K Singh
quelle
1

Syntex für die neuesten MySQL-Versionen wurde geändert.

Versuchen Sie also den Befehl RENAME ohne SINGLE QUOTES in Tabellennamen.

RENAME TABLE old_name_of_table TO new_name_of_table;

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

Führen Sie diesen Befehl aus

sp_rename 'Employee','EData'
Sai Gopi ich
quelle
-2

Tabellenname umbenennen:

RENAME TABLE old_tableName TO new_tableName;

beispielsweise:

RENAME TABLE company_name TO company_master;
pradip kor
quelle
Können Sie auf die SQL Server 2005-Dokumentation verweisen, in der dies beschrieben wird?
Fabian Fagerholm