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
Lii
la source
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'
David M
la source
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`
Djairo
la source
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é.

Ravindra K.
la source
14

Dans Postgress SQL:

Alter table student rename to student_details;
Kamran
la source
6

Dans MySQL:

RENOMMER template_functionLA TABLE EN business_function;

Devendra Singraul
la source
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

Ashutosh K Singh
la source
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;

Avinash
la source
0
RENAME TABLE old_table_name TO new_table_name;
Hazeena
la source
-1

exécuter cette commande

sp_rename 'Employee','EData'
Sai Gopi moi
la source
-2

renommer le nom de la table:

RENAME TABLE old_tableName TO new_tableName;

par exemple:

RENAME TABLE company_name TO company_master;
pradip kor
la source
Pourriez-vous indiquer la documentation de SQL Server 2005 où cela est décrit?
Fabian Fagerholm le