Actualizacion de todos los registros de una tabla por un Error

10/11/2006 - 10:04 por Felix | Informe spam
Tengo un expediente X que se produce en muy pocas ocasiones pero se da. Se
ejecuta una sentencia de UPDATE que debe actualizar solo un registro, pero
de vez en cuando actualiza todos los registros de la base de datos.
Estuve mirando codigo y todo es correcto y asi lo hace bien siempre menos en
ciertas ocasiones.
Mientras que encuentro el porque pasa, he creado un Trigger que me verifique
los registros que se estan actualizado y si detecto que se produce este caso
raro(se da 1 vez cada 6 meses mas o menos), muestro un mensaje de error y
ejecuto un "rollback transaction" para que me desaga el UPDATE. Pero esto
puede ser que se actualicen mas de 750.000 registros y luego hecharlo para
atras.
¿Habria alguna manera de saber por transact-sql, los valores que se
actualizaran para detectar este caso raro? por lo que entiendo un Trigger
actua cuando ya se produjo la actualizacion y en DELETED e INSERT estan los
vales actualizados. Que son los que analizo para detectar el error.

Otra duda que tengo es que si al hacer el "rollback transaction" da para
atras los valores actualizados o todas las operaciones que hizo el programa?
 

Leer las respuestas

#1 Alejandro Mesa
10/11/2006 - 14:58 | Informe spam
Felix,

Por que no posteas la estructura de la tabla y la sentencia update?

Otra duda que tengo es que si al hacer el "rollback transaction" da para
atras los valores actualizados o todas las operaciones que hizo el programa?



Todas las operaciones DML que se ejecutan dentro de la transaccion.


AMB


"Felix" wrote:

Tengo un expediente X que se produce en muy pocas ocasiones pero se da. Se
ejecuta una sentencia de UPDATE que debe actualizar solo un registro, pero
de vez en cuando actualiza todos los registros de la base de datos.
Estuve mirando codigo y todo es correcto y asi lo hace bien siempre menos en
ciertas ocasiones.
Mientras que encuentro el porque pasa, he creado un Trigger que me verifique
los registros que se estan actualizado y si detecto que se produce este caso
raro(se da 1 vez cada 6 meses mas o menos), muestro un mensaje de error y
ejecuto un "rollback transaction" para que me desaga el UPDATE. Pero esto
puede ser que se actualicen mas de 750.000 registros y luego hecharlo para
atras.
¿Habria alguna manera de saber por transact-sql, los valores que se
actualizaran para detectar este caso raro? por lo que entiendo un Trigger
actua cuando ya se produjo la actualizacion y en DELETED e INSERT estan los
vales actualizados. Que son los que analizo para detectar el error.

Otra duda que tengo es que si al hacer el "rollback transaction" da para
atras los valores actualizados o todas las operaciones que hizo el programa?



Preguntas similares