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 :
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part CREATE TABLE Tab_Sauv As Select * From Tab_Gest
J'ai donc pensé utiliser l'ordre MERGE INTO, comme suit :
où les colonnes Id sont les clef primaires de chacune des tables.
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
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.*
Partager