SQL - Requête update

Bonjour à tous

J'ai un gros problème et je ne comprend pas pourquoi?

Je développe une appli web en java et j'ai besoin d'exécuter des requêtes d'update afin de mettre à jour mes tables.

Certaines requêtes devraient me permettre de mettre à jour plusieurs lignes de ma table en même temps mais lors de l'exécution des ces requêtes, le message suivant apparaît :

Erreur: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant qu'expression.

Si quelqu'un peut m'aider SVP.

Merci d'avance.

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. euuhhhh, ACTIF est bien un INTEGER dans la table pt_detail ?
    et ID_POSTE est un string ?
    1. Pas de solution mais je te conseille de tracer les requetes qui te posent problème et de les exécutées avec le client sql (query analyser).
      1. Visiblement c’est dû au fait que ta requete imbriquée retourne plusieurs valeurs alors qu’elle ne devrait en retourner qu’une.
        Je connais pas tes requetes mais essaie éventuellement d’ajouter un « TOP 1 » à ta sous-requete.
        Enfin la je parle un peu en aveugle ce serait plus pratique que tu nous montre tes requetes.

        1. Ma requête est la suivante :

          UPDATE pt_detail SET ACTIF=0, USER_DERN_MODIF='MOI' WHERE ID_POSTE='4'
          1. Si ta sous requete renvoi plusieurs valeurs et que ton ID_POSTE n'est pas une clé primaire remplace le ID_POSTE='4' par ID_POSTE IN ('4')
        2. SLT,

          Pas de solution mais je te conseille de tracer les requetes qui te posent

          problème et de les exécutées avec le client sql avant d'executer au niveau de

          l'application java.