SQL Server - problema con varios updates

   
Vista:

problema con varios updates

Publicado por Juan (9 intervenciones) el 11/01/2010 16:18:42
Hola a todos, tengo un pequeño problema con varios updates que tengo colocados unos detrás de otro en un trigger. Como ejemplo el siguiente:

UPDATE tabla1 SET campo1 = null where clave1 = 33

UPDATE tabla1 SET campo2 = null where clave1 = 33

UPDATE tabla1 SET campo3 = null where clave1 = 33

UPDATE tabla1 SET campo4 = null where clave1 = 33

es decir que para las filas en que la clave sea 33, poner algunos campos a null.
En mi caso real serían como 30 o 40 updates. Cada update modifica varias filas. Las varias filas las modifica para la primera linea, pero para todas las demás me salta error;

La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.

un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

RE:problema con varios updates

Publicado por Isaias (3180 intervenciones) el 11/01/2010 22:21:29
/*
update table set campo1 = null, campo2 =null, campo3 = null, campo4 = null, campox = null
where clave1 = 33
*/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con varios updates

Publicado por Juan (9 intervenciones) el 12/01/2010 09:42:39
Gracias Isaias por la respuesta, pero ya probé esta alternativa ayer después de exponer mi problema aquí y me vuelve a salir el error 'La subconsulta ha devuelto más de un valor...'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:problema con varios updates

Publicado por Isaias (3180 intervenciones) el 12/01/2010 17:23:57
Muestrame tu codigo completo, ¿se puede?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con varios updates

Publicado por Juan (9 intervenciones) el 12/01/2010 17:29:58
Gracias Isaias por tu tiempo, pero creo que el problema no está ahí. Resulta que al intentar poner a null todos esos campos por cada campo saltaría un trigger que actualizaría una sumaTotal. En algún momento, creo que por devolver varias líneas, no funciona bien la cosa. He intentado poner un cursor para que haga el update de mi pregunta para cada una de las filas que me devuelva el cursor, pero sigue fallando.
No se si me explico.

Gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:problema con varios updates

Publicado por Isaias (3180 intervenciones) el 13/01/2010 00:37:28
No puedo hacer comentario acertado, ya que desconozco el codigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con varios updates

Publicado por Juan (9 intervenciones) el 13/01/2010 10:28:28
Ya se, pero es que ni yo sé todavía lo que hace exactamente, está todo muy intrincado. Gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Intentando ayudar

Publicado por Eneida (1 intervención) el 23/03/2010 00:01:30
Ok, no se si aun necesitas ayuda, pero aqui va un poco:

Cuando hacemos un Trigger, aveces pensamos que un update, (como un insert) se irá dando linea a linea, pero no es así, un update puede modificar varias filas a la vez (tu trigger, por ejemplo, hace updates de varias lineas), así que la tabla INSERTED tiene varias lineas, si tu trigger afecta a una tabla que, a su vez tiene sus propios triggers y el programador no contempló un update múltiple, entonces ese es el problema.

Te recomiendo que hagas un dibujo, como un arbol de triggers, para ver cuántos triggers se terminan ejecutando al ejecutar el tuyo, que vayas desabilitandolos y habilitandolos hasta ver cual es el error.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Intentando ayudar

Publicado por Juan (9 intervenciones) el 23/03/2010 00:08:37
Gracias por la respuesta. Ya resolví esto en su día y por ahí creo recordar que iban los tiros, si, y se me olvidó comentar por aquí cómo quedó la cosa.

un saludo y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar