Bonjour,

J'ai un souci avec la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MERGE INTO ARTCARACTERISTIQUE
USING (SELECT X.ARTCARAC_ID, X.ART_ID, X.CARAC_ID, X.VALEUR_FR, X.VALEUR_EN
        FROM (VALUES (null, 59843, 3, '', ''),(null, 59843, 8, 'Guiscard', 'Guiscard'),(null, 59843, 10, '', ''),(null, 59843, 9, '1', '1')) 
        AS X(ARTCARAC_ID, ART_ID, CARAC_ID, VALEUR_FR, VALEUR_EN)) 
AS TEMP
ON TEMP.ARTCARAC_ID = ARTCARACTERISTIQUE.ARTCARAC_ID
WHEN MATCHED THEN
    UPDATE SET 
        ARTCARACTERISTIQUE.ART_ID = TEMP.ART_ID, 
        ARTCARACTERISTIQUE.CARAC_ID = TEMP.CARAC_ID, 
        ARTCARACTERISTIQUE.ARTCARAC_VALEUR_FR = TEMP.VALEUR_FR, 
        ARTCARACTERISTIQUE.ARTCARAC_VALEUR_EN = TEMP.VALEUR_EN
 WHEN NOT MATCHED THEN
     INSERT (ART_ID, CARAC_ID, ARTCARAC_VALEUR_FR, ARTCARAC_VALEUR_EN) 
     VALUES (TEMP.ART_ID, TEMP.CARAC_ID, TEMP.VALEUR_FR, TEMP.VALEUR_EN);
Lorsque je l'éxécute j'obtiens le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Msg 245, Niveau 16, État 1, Procédure TU_ARTCARACTERISTIQUE, Ligne 59 [Ligne de départ du lot 0]
Échec de la conversion de la valeur varchar 'ARTICLE" n'existe pas. Impossible de modifier l'enfant dans "ARTCARACTERISTIQUE".' en type de données int.

Pourtant j'ai bien une ligne dans la table article avec l'art_id 59843 et de même pour les carac_id...

Merci de votre aide, c'est relativement important !!