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 :
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
N.B. : inspiré du code de l'exemple A de cette page.

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 ?