Changer le nom d'un champ avec SQL?

Bonjour,
je souhaite changer le nom d’un champ par programmation :

ALTER TABLE matable
RENAME COLUMN monchamp1 TO monchamp2;

cela ne semble pas fonctionner.
Je n’ai pas trouvé d’exemple dans le manuel de référence SQL sous ALTER TABLE.
Si quelqu’un a une idée…

Bonjour Luc,

dans la doc SQL de 4D, je n’ai pas trouvé la fonction / commande RENAME COLUMN.
Peux être est-ce tout simplement pas possible actuellement.

Bonjour Patrick, c’est dans la commande ALTER TABLE (ou devrait…)

dans l’éditeur de méthode 4D les mots clés RENAME et TO sont bien reconnus au niveau du parsing (en vert), mais il y a une erreur de syntaxe détectée.

Oui, c’est ça : pas possible. Râlant car 4D “legacy” sait parfaitement bien faire ça depuis qu’il est tout petit (magie du token).

En SQL
1/ supprimer colonne suivi de créer colonne :
:skull: surtout pas car 4D recycle comme il veut les éventuels autres champs supprimés. :skull:
2/ en 2 temps avec copie :
a créer nouvelle colonne
b copier le contenu de ancienne colonne dans nouvelle colonne
c supprimer ancienne colonne
Sauf que je ne vois pas comment appliquer cela à un 4dd chez un client en une seule version de mise à jour du 4db…

Bonjour Arnaud,

merci pour tes infos.

ca doit être fait à partir d’un composant…
Le language de 4D ne permet pas encore de modifier le nom des champs par programmation.
Creer les tables et les champs en SQL ne pose pourtant pas de problème.

Je vais opter pour ta solution B à moins que quelqu’un me dise à quoi sert les mots clés RENAME et TO dans le SQL de 4D.

Mais cela a d’autres conséquences, car j’utilise une structure virtuelle où je stocke le nom des champs et certains de leurs attributs pour des synchros entre bases différentes.

Du boulot sur la planche en perspective…