Як змінити ім'я таблиці за допомогою 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.