Mettre à jour une colonne à partir d'une autre [Résolu : rien à voir] - SQL/NoSQL - Programmation
Marsh Posté le 09-06-2011 à 16:34:19
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.
Marsh Posté le 09-06-2011 à 17:21:01
En fait quand je teste
Code :
|
ça marche, mais dans ce cas de figure le WHERE ne retourne qu'une ligne.
En revanche avec
Code :
|
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...
Marsh Posté le 09-06-2011 à 17:34:25
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.
Marsh Posté le 09-06-2011 à 17:44:59
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.)
Marsh Posté le 09-06-2011 à 17:48:42
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 !
Marsh Posté le 09-06-2011 à 17:55:48
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.
Marsh Posté le 09-06-2011 à 18:13:11
J'ai trouvé ! Il y a un trigger qui a été ajouté sur l'une des 2 bases et qui bloque la mise à jour !
Marsh Posté le 09-06-2011 à 15:31:47
Salut,
ça me paraît extrêmement simple et pourtant ça ne fonctionne pas :
Je veux simplement indiquer urgency = 3 dans toutes les lignes où 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 ?
Edit : c'est du T-SQL (SQL Server)
Message édité par Peanuty le 09-06-2011 à 18:13:42