Як змінити ім'я таблиці за допомогою SQL-запиту?


117

Як я можу змінити ім'я таблиці за допомогою оператора запиту?

Я використовував наступний синтаксис, але не зміг знайти ключове слово перейменування на SQL сервері 2005 року.

Alter table Stu_Table rename to Stu_Table_10

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'
Henrik Staun Poulsen

1
Коментар Генріка досить важливий, це, мабуть, має бути частиною відповіді? Врятувало мене від якогось головного болю.
CincinnatiProgrammer

65

В MySQL: -

RENAME TABLE `Stu Table` TO `Stu Table_10`

8
Питання стосується SQL Server, ваша відповідь - для MySQL.
Сем

7
Чудово співпрацював з MySQL.

11
Я підтримав, оскільки це питання посилається в google і на mysql.
Пол Фурнель

4
Працював для мене з Mysql
Ranganatha GV

2
+1 для відповіді mysql, оскільки Google також привів мене сюди. Пам'ятайте навіть, що ОП тикає на відповідь, який працював на них, інші можуть знайти альтернативні відповіді, такі як я.
amonett

15

Будь ласка, використовуйте це на SQL Server 2005:

sp_rename old_table_name , new_table_name

це дасть вам:

Увага: Зміна будь-якої частини імені об'єкта може порушити сценарії та збережені процедури.

але назва вашої таблиці буде змінено.




2

ALTER TABLE table_name RENAME TO new_table_name; працює і в MySQL.

Знімок екрана цього Запиту виконується на сервері MySQL

Як альтернативи: ПЕРЕЙМЕНУВАТИ ТАБЛИЦЯ table_nameДо new_table_name; Знімок екрана цього Запиту виконується на сервері MySQL


1

Синтекс для останніх версій MySQL змінено.

Тому спробуйте команду RENAME без єдиних цитат у назвах таблиць.

RENAME TABLE old_name_of_table TO new_name_of_table;




-2

перейменувати назву таблиці:

RENAME TABLE old_tableName TO new_tableName;

наприклад:

RENAME TABLE company_name TO company_master;

Не могли б ви вказати на документацію на SQL сервер 2005, де це описано?
Фабіан Фагергольм
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.