20/04/2010, 14:46
|
| | Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 21 años, 1 mes Puntos: 1 | |
Respuesta: Problema con cursor Cita:
Iniciado por Beakdan En general, en SQL Server 2005 o 2008 muy pocos problemas requieren del uso de un cursor. Este no es uno de ellos.
Código:
WITH upd AS (
SELECT ROW_NUMBER() OVER(PARTITION BY can_id order by fec_elab) as contador2,
contador,
can_id
FROM SEG_CANCER_NAB
WHERE CAN_ID in (906930,905573)
)
UPDATE upd
SET contador = contador2;
Sucede que dentro del bucle del cursor al realizar el update, estás actualizando todos aquellos registros en los que can_id corresponde al @can_id en turno es decir...
Primera vez: @can_id = 905573, @CONTADOR2 = 1
Después del UPDATE:
1 905573
1 905573
Segunda vez: @can_id = 905573, @CONTADOR2 = 2
Después del UPDATE:
2 905573
2 905573
Como podrás ver, el cursor hace exactamente lo que esperararía: Actualizar n veces cada grupo.
Saludos.
Entiendo y mi problema es que no tengo un identificador unico para poder asociarlo uno a uno existira en sql server algo asi como un row_id para poder generar el update asociado a los grupos |