Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
992 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu : rien à voir] Mettre à jour une colonne à partir d'une autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu : rien à voir] Mettre à jour une colonne à partir d'une autre

n°2081592
Peanuty
Posté le 09-06-2011 à 15:31:47  profilanswer
 

Salut,  
 
ça me paraît extrêmement simple et pourtant ça ne fonctionne pas :  :heink:  
 
Je veux simplement indiquer urgency = 3 dans toutes les lignes où priority = 7.
 

Code :
  1. update bugs
  2. set urgency = 3
  3. where bg_priority = 7


Code :
  1. update bugs
  2. set urgency = 3
  3. where bg_id in (select bg_id from bugs where bg_priority = 7)


 
Dans les 2 cas j'obtiens le message "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression."
 
Qu'est-ce que je fais mal ?  :sweat:
 
Edit : c'est du T-SQL (SQL Server)


Message édité par Peanuty le 09-06-2011 à 18:13:42
mood
Publicité
Posté le 09-06-2011 à 15:31:47  profilanswer
 

n°2081606
olivthill
Posté le 09-06-2011 à 16:34:19  profilanswer
 

Les requêtes sont bonnes, surtout la première qui est très simple et qui devrait passer.
 
Le problème doit se situer ailleurs. D'ailleurs, le message parle de subquery qui suit un signe "=" ou ">"... alors qu'il n'y a pas cela.
Je soupçonne un guillemet mal fermé quelque part, un problème de parenthèse un peu avant, ou un caractère indésirable dans l'une des lignes de la requête.

n°2081624
Peanuty
Posté le 09-06-2011 à 17:21:01  profilanswer
 

En fait quand je teste

Code :
  1. update bugs
  2. set urgency = 3
  3. where bg_id = 665
  4. --where bg_priority = 7

ça marche, mais dans ce cas de figure le WHERE ne retourne qu'une ligne.
 
En revanche avec

Code :
  1. update bugs
  2. set urgency = 3
  3. where bg_id = 665 or bg_id = 679
  4. --where bg_priority = 7

où le WHERE retourne 2 lignes (comme avec bg_priority = 7), j'ai à nouveau l'erreur.
 
donc le problème a bien l'air de se situer à ce niveau...  :??:

n°2081628
olivthill
Posté le 09-06-2011 à 17:34:25  profilanswer
 

Déjà, la requête est différente de celle qui était montrée initialement, car il y a une ligne de commentaire.
Or il arrive que certaines lignes de commentaire posent des problèmes avec certaines versions du moteur SQL (par exemple j'ai eu des problèmes autrefois quand une ligne de commentaire était mise au début).
 
Donc, s'il vous plait, pour avancer, postez-nous votre requête SQL exacte, et je pense qu'on trouvera l'apostrophe ou la parenthèse, ou l'autre truc qui pose le problème.


Message édité par olivthill le 09-06-2011 à 17:35:08
n°2081640
Peanuty
Posté le 09-06-2011 à 17:44:59  profilanswer
 

Les commentaires ? Ah bon ?! OK, je vais récupérer la requête exacte.
 
(La ligne en commentaire, c'est celle de la requête d'origine que j'ai commentée pour faire les 2 tests suivants.)


Message édité par Peanuty le 09-06-2011 à 17:45:54
n°2081643
Peanuty
Posté le 09-06-2011 à 17:48:42  profilanswer
 

En fait ça doit être un problème de structure ou de paramètrage : j'ai 2 instances SQL Server qui sont censées (!) être identiques, mais pas avec les mêmes données, et la requête initiale fonctionne sur la 2e !


Message édité par Peanuty le 09-06-2011 à 18:02:07
n°2081646
Peanuty
Posté le 09-06-2011 à 17:55:48  profilanswer
 

Quand je génère le script de création de la table bugs, la seule différence que je vois est "SET ANSI_PADDING ON" en plus dans la base où ça ne fonctionne pas.

n°2081652
Peanuty
Posté le 09-06-2011 à 18:13:11  profilanswer
 

J'ai trouvé ! Il y a un trigger qui a été ajouté sur l'une des 2 bases et qui bloque la mise à jour !  :bounce:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu : rien à voir] Mettre à jour une colonne à partir d'une autre

 

Sujets relatifs
mise à jour tables access en VBAComment copier une partie d'une colonne avec condition?
rechercher des donnes dans Bd oracle à partir de jsfRemplir un selectOneMenu à partir d'une BD oracle
[??] Création dynamique de page sur Mediawiki (à partir de code PHP)récupérer une variable dans une base de donnée pour la mettre dans un
fonction d'interpolation pour plus d'une colonnecode pour le calcul d'une fonction à partir d'une matrice
mettre un lecteur mp3 sur blogspot[VBA] - Auto mise à jour -
Plus de sujets relatifs à : [Résolu : rien à voir] Mettre à jour une colonne à partir d'une autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR