Jak zmienić nazwę tabeli za pomocą zapytania SQL?

117

Jak mogę zmienić nazwę tabeli za pomocą instrukcji zapytania?

Użyłem następującej składni, ale nie mogłem znaleźć słowa kluczowego rename w SQL Server 2005.

Alter table Stu_Table rename to Stu_Table_10
Lii
źródło
ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME Działa tylko w Oracle DB.
renu

Odpowiedzi:

221

Użyj sp_rename:

EXEC sp_rename 'Stu_Table', 'Stu_Table_10'

Dokumentację dotyczącą tej procedury można znaleźć w witrynie MSDN .

Jeśli musisz dołączyć nazwę schematu, można ją uwzględnić tylko w pierwszym parametrze (to znaczy, nie można jej użyć do przeniesienia tabeli z jednego schematu do innego). Na przykład jest to ważne:

EXEC sp_rename 'myschema.Stu_Table', 'Stu_Table_10'
David M.
źródło
9
Proszę pamiętać, że dla sp_rename jest to tylko pierwszy parametr, który może przyjąć nazwę schematu, drugi argument MUSI być bez nazwy schematu. Jak w EXEC sp_rename 'dbo.Stu_Table', 'Stu_Table_10'
Henrik Staun Poulsen,
1
Komentarz Henrika jest dość ważny, prawdopodobnie powinien być częścią odpowiedzi? Uratował mnie od bólu głowy.
CincinnatiProgrammer,
65

W MySQL: -

RENAME TABLE `Stu Table` TO `Stu Table_10`
djairo
źródło
8
Pytanie dotyczy SQL Server, Twoja odpowiedź dotyczy MySQL.
Sam
7
Działa świetnie z MySQL.
11
Głosowałem za mną, ponieważ to pytanie jest przywoływane w Google również dla mysql.
Paul Fournel
4
Pracował dla mnie z Mysql
Ranganatha GV
2
+1 dla odpowiedzi mysql, ponieważ Google również mnie tu przyniosło. Pamiętaj, że nawet jeśli OP zaznacza odpowiedź, która zadziałała w ich przypadku, inni mogą znaleźć przydatne odpowiedzi, na przykład ja.
amonett
15

Użyj tego na SQL Server 2005:

sp_rename old_table_name , new_table_name

da ci:

Przestroga: Zmiana dowolnej części nazwy obiektu może spowodować uszkodzenie skryptów i procedur składowanych.

ale nazwa twojej tabeli zostanie zmieniona.

Ravindra K.
źródło
14

W Postgress SQL:

Alter table student rename to student_details;
Kamran
źródło
6

W MySQL:

ZMIEŃ TABELĘ template_functionNA business_function;

Devendra Singraul
źródło
2

ALTER TABLE nazwa_tabeli RENAME NA nazwa_nowej_tabeli; działa również w MySQL.

Zrzut ekranu tego zapytania uruchamianego na serwerze MySQL

Alternatywnie: RENAME TABLE table_nameTO new_table_name; Zrzut ekranu tego zapytania uruchamianego na serwerze MySQL

Ashutosh K Singh
źródło
1

Zmieniono składnię najnowszych wersji MySQL.

Więc spróbuj polecenia ZMIEŃ NAZWĘ bez POJEDYNCZEGO cudzysłowu w nazwach tabel.

RENAME TABLE old_name_of_table TO new_name_of_table;

Avinash
źródło
0
RENAME TABLE old_table_name TO new_table_name;
Hazeena
źródło
-1

wykonaj to polecenie

sp_rename 'Employee','EData'
Sai Gopi Me
źródło
-2

zmień nazwę tabeli:

RENAME TABLE old_tableName TO new_tableName;

na przykład:

RENAME TABLE company_name TO company_master;
pradip kor
źródło
Czy możesz wskazać dokumentację SQL Server 2005, w której jest to opisane?
Fabian Fagerholm