Page 1 sur 1

Changement en masse

MessagePosté: Ven 15 Jan 2016 10:41
de rcanudo
Bonjour,

Je veux changer en masse des lignes de documents car les articles ont changé d' unité de vente Hl en m3

Voila ma procédure

UPDATE F_DOCLIGNE set DL_Qte = DL_Qte / 10,
DL_QteBC = DL_QteBC / 10,
DL_QteBL = DL_QteBL / 10,
DL_QtePL = DL_QtePL / 10,
DL_PrixUnitaire = DL_PrixUnitaire * 10 ,
DL_PUBC = DL_PUBC * 10 ,
DL_PrixRU = DL_PrixRU * 10 ,
DL_CMUP = DL_CMUP * 10 ,
DL_PUDevise = DL_PUDevise * 10 ,
DL_PUTTC = DL_PUTTC * 10 ,
EU_Enumere = 'm3 Mètre cube'
WHERE EU_Enumere <> 'm3 Mètre cube'

Le problème est que SQL Management Studio me renvoie ce message d' erreur

Msg 50000, Niveau 16, État 1, Procédure TG_CBUPD_F_DOCLIGNE, Ligne 74
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.
Msg 3616, Niveau 16, État 1, Ligne 1
Une erreur est survenue lors de l'exécution du déclencheur. Le lot a été abandonné et la transaction utilisateur éventuelle a été restaurée.

Pourquoi le trigger me fait-il la tête ? :( :(

Quelle peut être la solution ? Le désactive ? ou autre ?

Re: Changement en masse

MessagePosté: Mar 19 Jan 2016 23:52
de bishr
Bonjour,

L'idéal (mais plus long) serait de passer par un curseur SQL ...
Je pense ...

Sinon, lancé une trace SQL et voir pourquoi le TG de mise à jour des CB se déclenche ... mais je pense qu'il boucle ...

Cdt,