Comment changer le nom d'une table à l'aide d'une requête SQL?


117

Comment puis-je modifier le nom de la table à l'aide d'une instruction de requête?

J'ai utilisé la syntaxe suivante mais je n'ai pas pu trouver le mot-clé renommer dans SQL Server 2005.

Alter table Stu_Table rename to Stu_Table_10

ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME Fonctionne uniquement dans Oracle DB.
— renu

Réponses:


221

Utilisez sp_rename:

EXEC sp_rename 'Stu_Table', 'Stu_Table_10'

Vous pouvez trouver de la documentation sur cette procédure sur MSDN .

Si vous devez inclure un nom de schéma, celui-ci ne peut être inclus que dans le premier paramètre (c'est-à-dire qu'il ne peut pas être utilisé pour déplacer une table d'un schéma à un autre). Donc, par exemple, ceci est valide:

EXEC sp_rename 'myschema.Stu_Table', 'Stu_Table_10'

9
N'oubliez pas que pour sp_rename, c'est seulement le premier paramètre qui peut prendre un nom de schéma, le deuxième argument DOIT être sans le nom de schéma. Comme dans EXEC sp_rename 'dbo.Stu_Table', 'Stu_Table_10'
— Henrik Staun Poulsen

1
Le commentaire d'Henrik est assez important, cela devrait probablement faire partie de la réponse? M'a sauvé de certains maux de tête.
— CincinnatiProgrammer

65

Dans MySQL: -

RENAME TABLE `Stu Table` TO `Stu Table_10`

8
La question concerne SQL Server, votre réponse concerne MySQL.
— Sam le

7
Fonctionne très bien avec MySQL.

11
J'ai voté pour parce que cette question est également référencée dans google pour mysql.
— Paul Fournel

4
A travaillé pour moi avec Mysql
— Ranganatha GV

2
+1 pour la réponse mysql car Google m'a amené ici aussi. N'oubliez pas que même si OP coche la réponse qui a fonctionné pour eux, d'autres peuvent trouver des réponses alternatives utiles, comme moi.
— amonett

15

Veuillez utiliser ceci sur SQL Server 2005:

sp_rename old_table_name , new_table_name

cela vous donnera:

Attention: la modification de n'importe quelle partie d'un nom d'objet peut interrompre les scripts et les procédures stockées.

mais le nom de votre table sera changé.


14

Dans Postgress SQL:

Alter table student rename to student_details;


2

ALTER TABLE nom_table RENAME TO nouveau_nom_table; fonctionne également dans MySQL.

Capture d'écran de cette requête exécutée sur le serveur MySQL

Alternativement: RENOMMER table_nameLA TABLE EN new_table_name; Capture d'écran de cette requête exécutée sur le serveur MySQL


1

Syntex pour les dernières versions de MySQL a été modifié.

Essayez donc la commande RENAME sans guillemets uniques dans les noms de table.

RENAME TABLE old_name_of_table TO new_name_of_table;




-2

renommer le nom de la table:

RENAME TABLE old_tableName TO new_tableName;

par exemple:

RENAME TABLE company_name TO company_master;

Pourriez-vous indiquer la documentation de SQL Server 2005 où cela est décrit?
— Fabian Fagerholm le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.