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.