Error en transacción con trigger

30/10/2006 - 16:18 por Juan Cuello | Informe spam
Hola buenas,

El problema que tengo es cuando ejecuto un procedimiento almacenado que
elimina una serie de registros de una tabla relacionados tal que forman un
árbol (referencia a otro registro de la tabla como registro padre). Yo
elimino un registro y tengo un trigger que automáticamente elimina todos los
registros hijo y así mismo los hijos de los hijoses decir, borra esa rama.

Si alguno de los registros que se eliminan están relacionados con otra
tabla, debería fallar la integridad referencial y ya está pero el problema va
más allá:

Si realizo la ejecución del SP normalmente no me falla nada pero si realizo
la ejecución en una transacción me da el siguiente error:

3930

La transacción actual no se puede confirmar ni admite operaciones que
escriban en el archivo de registro. Revierta la transacción.

Viene dado porque no me da error, por tanto mi código hace un commit. Lo
mismo pasa si hago la ejecución del procedimiento almacenado desde el
Management Studio, sin transacción va bien y con transacción falla...

Alguien me puede decir que significa este error? Solución? help!!! :_(

AP Software Development

AP Software Development
 

Leer las respuestas

#1 Maxi
30/10/2006 - 16:47 | Informe spam
Hola, lo bueno seria que este tipo de cosas no lo hagas con triggers y si
con foreign key de borrado en cascada.
Ahora bien podrias pasanos como estas ejecutando con y sin transaccion desde
el management studio esto? y tambien enviarnos el error textual que pueda
dar en el management studio



Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"Juan Cuello" escribió en el mensaje
news:
Hola buenas,

El problema que tengo es cuando ejecuto un procedimiento almacenado que
elimina una serie de registros de una tabla relacionados tal que forman un
árbol (referencia a otro registro de la tabla como registro padre). Yo
elimino un registro y tengo un trigger que automáticamente elimina todos
los
registros hijo y así mismo los hijos de los hijoses decir, borra esa
rama.

Si alguno de los registros que se eliminan están relacionados con otra
tabla, debería fallar la integridad referencial y ya está pero el problema
va
más allá:

Si realizo la ejecución del SP normalmente no me falla nada pero si
realizo
la ejecución en una transacción me da el siguiente error:

3930

La transacción actual no se puede confirmar ni admite operaciones que
escriban en el archivo de registro. Revierta la transacción.

Viene dado porque no me da error, por tanto mi código hace un commit. Lo
mismo pasa si hago la ejecución del procedimiento almacenado desde el
Management Studio, sin transacción va bien y con transacción falla...

Alguien me puede decir que significa este error? Solución? help!!! :_(

AP Software Development

AP Software Development

Preguntas similares