Bonjour,

Je viens de découvrir l’instruction SQL : MERGE INTO....
Et là je me dis que je suis vraiment une buse de ne pas la connaitre depuis longtemps....

J'ai juste une petite question sur son utilisation :
faut-il obligatoirement lister toutes les colonnes dans la clause SET du UPDATE ?

Bien sur, cette question n'a de sens que dans le cas suivant :

j'ai deux tables ayant la même structure (une table de gestion et une table de sauvegarde) , la table de sauvegarde étant créée comme une "copie" de la table de gestion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 CREATE TABLE Tab_Sauv As Select * From Tab_Gest
après quelques tests, qui modifient les données de la table de gestion, je voudrais remettre cette dernière dans son état initial, sans faire des DELETE suivi d' INSERT (vu le nombre de contraintes référentielles qu'il faudrait alors prendre en compte).
J'ai donc pensé utiliser l'ordre MERGE INTO, comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Merge Into Tab_Gest TG Using Tab_Sauv TS
On (  TG.ID = TS.ID )
When Matched Then Update Set TG.* = TS.* Where TG.ID = TS.Id
où les colonnes Id sont les clef primaires de chacune des tables.
Bien entendu cette instruction est en erreur sur les * dans
Code : Sélectionner tout - Visualiser dans une fenêtre à part
When Matched Then Update Set TG.* = TS.*