Bonjour à tous, je ne comprends pas pourquoi le curseur ci-dessous ne réalise pas les UPDATE nécessaires sur les produits de numéro 4...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DECLARE @quant varchar(180); 
DECLARE qua cursor FOR SELECT Qtecom FROM LIGNE WHERE Noprod = 4; 
OPEN qua; 
FETCH NEXT FROM qua INTO @quant;   
WHILE @@FETCH_STATUS = 0 
BEGIN    
	IF (@quant < 20) 
        BEGIN   
		UPDATE LIGNE SET @quant = @quant + 10
		FETCH NEXT FROM qua INTO @quant
        END
	IF (@quant >= 20)    
		UPDATE LIGNE SET @quant = @quant - 5
		FETCH NEXT FROM qua INTO @quant 
END;   
CLOSE qua;
DEALLOCATE qua;
Je souhaiterais que le curseur parcoure tous les tuples et pour les produits de numéro 4 ajoute 10 à la quantité si la quantité est < à 20 et soustrait 5 si la quantité est >= à 20.


Merci beaucoup !