Bonjour,
Je cherche à renommer un table sous SQL Server mais je n'y arrive pas.
J'ai la requête suivante mais qui donner une erreur au mot TO :
Il manque quoi ?Code:
1
2 ALTER TABLE t_prg_dates RENAME TO t_prg_date
Version imprimable
Bonjour,
Je cherche à renommer un table sous SQL Server mais je n'y arrive pas.
J'ai la requête suivante mais qui donner une erreur au mot TO :
Il manque quoi ?Code:
1
2 ALTER TABLE t_prg_dates RENAME TO t_prg_date
hello ,
il faut utiliser sp_rename comem ceci
Code:exec sp_rename 'table1', 'nouveaunom'
Merci, j'ai également trouvé cette procédure hier soir sur le net.
Mais un pote m'a donné une autre idée : INSERT INTO.
Ca copie une table dans une autre sans la créér nécessairement. Pratique ! Du coup, c'est ce que j'ai fait et j'ai supprimé l'ancienne table ensuite.
Ca fonctionne bien et c'est rapide à coder.
Mais je vais quand même essayer la ps sp_rename histoire de.
A+
TP
sp_rename ne fait que les modifications au niveau des tables système, d'où sa performance exceptionnelle.
Le insert into est très peu performant car il recopie la table en transactionnel => grosse charge sur le journal de transactions et besoin du double de tla taille de la table, ce qui peut poser problème pour les table volumineuses. Préférer alors carrément le SELECT INTO plutôt que le INSERT SELECT.
De toute manière,ne pas oublier d'exécuter la commande suivante après chaque renommage ou remplacement de table
Code:sp_recompile VotreTable
Oups ... Je me suis trompé en écrivant INSERT INTO ... J'ai écrit trop vite ... J'ai bien utilisé le SELECT INTO.
Et en testant sp_rename (je viens de le faire y'a 1 heure), je suis tout de suite passé à cette solution. Encore plus simple à écrire et moins de ressources nécessaires (je m'en doutais, mais merci de me le confirmer)
Par contre, je ne connaissais pas sp_recompile non plus, merci pour l'info. Je vais l'appliquer de suite.
Merci bien tous les 2.
++