Как изменить имя таблицы с помощью SQL-запроса?

117

Как я могу изменить имя таблицы с помощью запроса?

Я использовал следующий синтаксис, но мне не удалось найти ключевое слово rename в SQL Server 2005.

Alter table Stu_Table rename to Stu_Table_10
Lii
источник
ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME Работает только в Oracle DB.
Renu

Ответы:

221

Используйте sp_rename:

EXEC sp_rename 'Stu_Table', 'Stu_Table_10'

Вы можете найти документацию по этой процедуре на MSDN .

Если вам нужно включить имя схемы, его можно включить только в первый параметр (т. Е. Его нельзя использовать для перемещения таблицы из одной схемы в другую). Так, например, это действительно так:

EXEC sp_rename 'myschema.Stu_Table', 'Stu_Table_10'
Дэвид М
источник
9
Помните, что для sp_rename только первый параметр может принимать имя схемы, второй аргумент ДОЛЖЕН быть без имени схемы. Как и в EXEC sp_rename 'dbo.Stu_Table', 'Stu_Table_10'
Хенрик Стаун Поульсен,
1
Комментарий Хенрика очень важен, вероятно, это должно быть частью ответа? Избавил меня от головной боли.
CincinnatiProgrammer
65

В MySQL: -

RENAME TABLE `Stu Table` TO `Stu Table_10`
djairo
источник
8
Вопрос о SQL Server, ваш ответ - о MySQL.
Сэм
7
Отлично работал с MySQL.
11
Я проголосовал за, потому что этот вопрос также упоминается в Google для mysql.
Пол Фурнель
4
Работал для меня с Mysql
Ranganatha GV
2
+1 за ответ mysql, так как Google тоже привел меня сюда. Помните, что даже если OP отмечает ответ, который сработал для них, другие могут найти полезные альтернативные ответы, например, я.
amonett
15

Пожалуйста, используйте это на SQL Server 2005:

sp_rename old_table_name , new_table_name

это даст вам:

Внимание: изменение любой части имени объекта может нарушить работу скриптов и хранимых процедур.

но имя вашей таблицы будет изменено.

Равиндра К.
источник
14

В Postgress SQL:

Alter table student rename to student_details;
Камран
источник
6

В MySQL:

ПЕРЕИМЕНОВАТЬ ТАБЛИЦУ template_functionВ business_function;

Девендра Синграул
источник
2

ALTER TABLE table_name RENAME TO new_table_name; также работает в MySQL.

Снимок экрана этого запроса, запущенного на сервере MySQL

Или: ПЕРЕИМЕНОВАТЬ ТАБЛИЦУ table_nameВ new_table_name; Снимок экрана этого запроса, запущенного на сервере MySQL

Ашутош К. Сингх
источник
1

Изменен Syntex для последних версий MySQL.

Поэтому попробуйте команду ПЕРЕИМЕНОВАТЬ без ОДИНАКОВЫХ ЦИТАТ в именах таблиц.

RENAME TABLE old_name_of_table TO new_name_of_table;

Авинаш
источник
-1

выполнить эту команду

sp_rename 'Employee','EData'
Саи Гопи Ме
источник
-2

переименовать имя таблицы:

RENAME TABLE old_tableName TO new_tableName;

например:

RENAME TABLE company_name TO company_master;
прадип кор
источник
Не могли бы вы указать на документацию по SQL Server 2005, где это описано?
Fabian Fagerholm