Hello,
Ce n'est pas la première fois que je poste à ce sujet mais pour éviter de remonter une vieille discussion (portant en plus sur d'autres tables), j'en ouvre une nouvelle.
Il a fallu le temps mais j'appréhende à présent mieux le fonctionnement de l'instruction MERGE. On définit une table cible et une table source avec un critère de jointure entre les deux et suivant que le critère est vérifié ou non, on fait l'une ou l'autre action. Avec le recul, je me dis que c'était quand même vachement con à comprendre XD.
Bref, je tente d'écrire une instruction merge et ssms me rale dessus en disant que mon critère n'est pas une expression booléenne. J'en perds mon latin...
Voici l'instruction :
N.B. : inspiré du code de l'exemple A de cette page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 MERGE S_PROMO.T_SEASON_GROUP_SGP AS TARGET USING (SELECT SGP_ID, SEA_ID, PEO_VALUE, ISNEW FROM @LIST_SEASONS) AS SOURCE (SGP_ID, SEA_ID, PEO_VALUE, ISNEW) ON (TARGET.SGP_ID = SOURCE.SGP_ID) WHEN MATCHED THEN SELECT 1 WHEN NOT MATCHED THEN SELECT 2
SGP_ID est bien sûr de type INT des deux côtés. Je comprends vraiment pas le problème qu'y trouve ssms...
Quelqu'un pourrait-il m'aiguiller ?
Partager