Problema urgentisimo, cursor SQL Server..

Vikkktor

Buenas,
tengo que entregar un trabajo esta noche a las 00:00 y llevo atascado todo el día con esto, ojalá me podáis ayudar.

Tengo una tabla "PEDIDOS", que tiene una columna "ESTADO", que puede tomar los valores 'R' o 'P'.

Bien, pues he creado una vista en la que recojo solamente aquellas filas cuyo estado es 'P'.

Y ahora tengo que crear un cursor para recorrer todas esas filas cuyo estado es 'P' y actualizar la tabla "PEDIDOS" cambiandoles el estado a 'R'.

Lo que hago:

DECLARE CURSOR1 CURSOR FOR 
SELECT IDPEDIDO FROM (miVista)
-
-
UPDATE PEDIDOS SET estado = 'R' WHERE idPedido = @PEDIDO
-
-

Pero claro, al actualizar la tabla "PEDIDOS" auntomáticamente se actualiza la vista, y no me deja hacer el proceso.

"Mens 16943, Nivel 16, Estado 4, Procedimiento GESTION_PEDIDOS_PROVEEDORES, Línea 20
No se pudo completar la operación de cursor porque el esquema de tabla cambió desde que se declaró el cursor."

Veis alguna forma de hacerlo?

Gracias.

RaymaN

¿Es obligatoria la vista?

1 respuesta
Vikkktor

#2
- Crear una vista que permita saber que pedidos están pendientes de ser recibidos.

  • Crear un procedimiento almacenado que gestione el proceso de recepción y aceptación de pedidos de los proveedores de forma automática.
  • El pedido se pasa a recibido y se actualiza el stock, las necesidades y los pedidos, estos últimos por orden de antigüedad.[/i]

Supongo que para algo me mandará crear la vista xD.
Sin usarla, podría resolverse haciendo el cursor directamente sobre "PEDIDOS" y haciendo un (if estado='P' )...

Pero entonces no sé que pinta ahi la vista.

Vikkktor

Nadie?

Ah, y probando a hacer el cursor sobre la tabla "PEDIDOS" tampoco me deja, ya que esta trabajando una tabla a la que a la vez está modificando.

Vikkktor

fml, ya esta resuelto xD

1 respuesta
ninjachu

#5 ¿Con una vista no vinculada?

Usuarios habituales

  • ninjachu
  • Vikkktor
  • RaymaN