« La sous-requête a retourné plusieurs valeurs. Cela n’est pas autorisé… »
Une commande UPDATE toute simple mettant à jour plusieurs enregistrements peut facilement dégénérer en une erreur fort intrigante.
Exemple :
UPDATE ma_table SET departement = 44 WHERE ville = ’Nantes’
SQL Server va renvoyer l’erreur suivante :
Msg 512, Niveau 16, �tat 1, Procédure reconduite_u, Ligne 14 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. L’instruction a été arrêtée.
Sans entrer dans les détails, il faut d’abord vérifier la présence d’un éventuel TRIGGER attaché à cette table. Il suffit de le désactiver pour que la commande UPDATE se passe bien.