Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/06/2004, 10:30
Teri
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 9 meses
Puntos: 0
Pues el motivo de que solo te actualizara uno, es el como estabas haciendo el UPDATE, 'UPDATE Vacas SET PreñadaVac='1' WHERE CodVac=@Cod', si no actualizas @Cod con el nuevo valor proveniente de tu cursor solo actualizarás el valor del primero, para eso es el INTO, es como si en código hicieras una asignación a la variable desde un recordset.

De todas formas, si quieres un consejo, cambia el cursor por una sola instrucción UPDATE, es más rápido de ejecutar, y aunque ahora tengas pocos registros y no notas diferencia, a la larga lo notarás, los cursores son siempre más lentos.

La SQL quedaría algo así:

UPDATE Vacas SET PreñadaVac='1' WHERE DateDiff(m,FechaInsVac,GETDATE())>=3 AND FechaInsVac IS NOT NULL

lo único es que queda menos claro que cuando lo haces con un cursor, aunque eso depende de quien lea el Procedimiento Almacenado

Un saludo