Problema con trigger

26/01/2005 - 19:43 por . | Informe spam
Hola amigos,

Me surge el siguiente problema, tengo 2 tablas con la siguiente definición;

Tabla1 Tabla2
(*)Montaje (*)IdLinea
(*)LMontaje Montaje
Codigo LMontaje
Nombre Almacen
Cantidad Ubicacion

Los (*) representan los campos clave de cada tabla y Tabla1 está relacionada
con Tabla2 por los campos Montaje y LMontaje con actualización y eliminación
en cascada.

Por cada eliminación de un registro de la Tabla2 se me dispara un trigger,
El problema viene cuando elimino un registro de la Tabla1 que está
relacionado con varios de la Tabla2, el trigger da un error porque como es
lógico todos los registros relacionados de la Tabla2 se eliminan al mismo
tiempo, ¿cómo puedo evitar esto?, es decir, que cuando elimine un registro
de la Tabla1, los registros de la Tabla2 se eliminen uno a uno y así por
cada eliminación se dispararía el trigger, ¿hay alguna otra forma mejor de
hacerlo que con cursores?

No se si me he hecho un lio al explicarlo, pero si no lo entendéis
decídmelo.

Muchas gracias
 

Leer las respuestas

#1 ulises
26/01/2005 - 20:16 | Informe spam
No sé como lo estás haciendo con cursores, en general usar
cursores en un trigger es una mala idea, lo que debes hacer
es modificar tu trigger para que trabaje con el conjunto de
datos de las tablas inserted y deleted en lugar de asumir
que siempre será uno.

Saludos,
Ulises

Hola amigos,

Me surge el siguiente problema, tengo 2 tablas con la


siguiente definición;

Tabla1 Tabla2
(*)Montaje (*)IdLinea
(*)LMontaje Montaje
Codigo LMontaje
Nombre Almacen
Cantidad Ubicacion

Los (*) representan los campos clave de cada tabla y


Tabla1 está relacionada
con Tabla2 por los campos Montaje y LMontaje con


actualización y eliminación
en cascada.

Por cada eliminación de un registro de la Tabla2 se me


dispara un trigger,
El problema viene cuando elimino un registro de la Tabla1


que está
relacionado con varios de la Tabla2, el trigger da un


error porque como es
lógico todos los registros relacionados de la Tabla2 se


eliminan al mismo
tiempo, ¿cómo puedo evitar esto?, es decir, que cuando


elimine un registro
de la Tabla1, los registros de la Tabla2 se eliminen uno a


uno y así por
cada eliminación se dispararía el trigger, ¿hay alguna


otra forma mejor de
hacerlo que con cursores?

No se si me he hecho un lio al explicarlo, pero si no lo


entendéis
decídmelo.

Muchas gracias



.

Preguntas similares