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

Preguntas similare

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



.

Respuesta Responder a este mensaje
#2 .
27/01/2005 - 09:25 | Informe spam
Gracias por la respuesta,
¿Me podrías pasar un link o un ejemplo de como se haría con un conjunto de
datos?
Muchas gracias.
Respuesta Responder a este mensaje
#3 Liliana Sorrentino
27/01/2005 - 16:00 | Informe spam
Hola,
Con el permiso de Ulises, si mirás en los libros en pantalla verás cómo
trabaja un trigger con dos tablas virtuales, inserted y deleted,
manejándolas adecuadamente no necesitás cursores.
Liliana.

"." escribió en el mensaje
news:
Gracias por la respuesta,
¿Me podrías pasar un link o un ejemplo de como se haría con un conjunto de
datos?
Muchas gracias.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida