SQL Server : Erreur lors dun update de plusieurs lignes en même temps.
21/02/2008
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 lerreur suivante :
Msg 512, Niveau 16, État 1, Procédure reconduite_u, Ligne 14
La sous-requête a retourné plusieurs valeurs.
Cela nest pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant quexpression.
Linstruction a été arrêtée.
Sans entrer dans les détails, il faut dabord vérifier la présence dun éventuel TRIGGER attaché à cette table. Il suffit de le désactiver pour que la commande UPDATE se passe bien.