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

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'

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`

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.


14

In Postgress SQL:

Alter table student rename to student_details;


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


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;




-2

Tabellenname umbenennen:

RENAME TABLE old_tableName TO new_tableName;

beispielsweise:

RENAME TABLE company_name TO company_master;

Können Sie auf die SQL Server 2005-Dokumentation verweisen, in der dies beschrieben wird?
Fabian Fagerholm
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.