Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2010, 10:07
hunabku
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 5 meses
Puntos: 1
Problema con cursor

Saludos que tal tengo un problema con un cursor que deberia actualizarme una columna que no es mas que un contador de registros por cliente
-------------------------------------------------------------------
declare @CONTADOR2 as int
declare @can_id as numeric(10)



DECLARE CUR1 cursor for
Select row_number() over(partition by CAN_ID order by fec_elab) as CONTADOR2, CAN_ID
from SEG_CANCER_NAB
where CAN_ID in (906930,905573)



OPEN CUR1

BEGIN TRAN

FETCH NEXT FROM CUR1
INTO @CONTADOR2,@can_id
WHILE @@FETCH_STATUS = 0

BEGIN

update SEG_CANCER_NAB
set Contador= @CONTADOR2
where Can_id=@can_id



FETCH NEXT FROM CUR1
INTO @CONTADOR2,@can_id



END
COMMIT TRAN


CLOSE CUR1
DEALLOCATE CUR1

-------------------------------------------------------------------


El resultado deberia ser algo asi

CONTADOR2 CAN_ID
1 905573
2 905573
1 906930
2 906930
3 906930

pero lo que hace es lo siguiente:

CONTADOR2 CAN_ID
2 905573
2 905573
3 906930
3 906930
3 906930

Como que me esta tomando solo el ultimo valor y lo esta actualizando alguien sabra porque se debe esto