Ejecutar un procedimiento almacenado dentro de un trigger

26/05/2006 - 20:02 por Morgan | Informe spam
Mi pregunta es la siguiente, como puedo ejecutar un procedimiento almacenado
dentro de un triger que se lanza cuando borro filas de una tabla, y por cada
fila que se borro debo nvocar un procedimiento almacenado, se que la tabla
deteted contiene los registros borrados, pero no se como recuperar mas de un
registro a la vez de esa tabla, ya que como mensiono al principio segun he
leido el trigger solo se ejecuta al final de la instruccion y no por cada
fila de se afecte...
Gracias de ante mano por la ayuda que me puedan brindar.

Preguntas similare

Leer las respuestas

#1 Maxi
26/05/2006 - 20:35 | Informe spam
Morgam, lamentablemente para hacer esto que buscas es aplicando un cursor
sobre las tablas del trigger y ejecutar el sp.
Ojo con esto, porque la base se pondra lenta y mas aun por estar dentro de
un trigger el cual pertence a transacciones.
Yo pensaria si es la unica opcion q tenes y en lugar de decirnos como lo
queres hacer si nos dirias que buscas lograr podriamos estre todos buscarte
alguna alternativa


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Morgan" escribió en el mensaje
news:
Mi pregunta es la siguiente, como puedo ejecutar un procedimiento
almacenado
dentro de un triger que se lanza cuando borro filas de una tabla, y por
cada
fila que se borro debo nvocar un procedimiento almacenado, se que la tabla
deteted contiene los registros borrados, pero no se como recuperar mas de
un
registro a la vez de esa tabla, ya que como mensiono al principio segun he
leido el trigger solo se ejecuta al final de la instruccion y no por cada
fila de se afecte...
Gracias de ante mano por la ayuda que me puedan brindar.
Respuesta Responder a este mensaje
#2 Morgan
26/05/2006 - 21:05 | Informe spam
mira la idea es por ejemplo si tengo una factura la cual tiene una relacion
maestro detalle, el detalle por consiguiente tiene una cantida de productos
que fueron afectados a la tabla de inventario, luego si desido borrar la
factua lo que hago es dar un delete a la tabla maestro, el cual ejecuta un
triger para eliminar sus registros de detalle, hasta aqui todo va bien, pero
resulta que lo que quiero es que cuando se borren las partidas del detalle
por cada una de ellas se llame a un procedimiento almacenado que actualice el
inventario con los montos de las cantidades de producto que fueron afectadas
previamente al dar de alta la factura, segun entiendo los registros que
fueron borrados en la tabla de partidas se guardan en la tabla deleted, y
como el trigger solo se lanza al final de la ejecucion de la instruccion
delete sobre la tabla de partidas entonces creo que lo que debo hacer es
recorrer la tabla deleted para invocar el procedimiento almacenado que
actualice mi tabla de inventario, consderando que en las partidas tengo la
clave del producto y el numero de productos que se vendieron.

espero no haber sido demasiodo extenso en mi explicacion.
Respuesta Responder a este mensaje
#3 Maxi
26/05/2006 - 21:07 | Informe spam
Morgan y no podes usar UPDATE? en lugar de llamar al SP?


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Morgan" escribió en el mensaje
news:
mira la idea es por ejemplo si tengo una factura la cual tiene una
relacion
maestro detalle, el detalle por consiguiente tiene una cantida de
productos
que fueron afectados a la tabla de inventario, luego si desido borrar la
factua lo que hago es dar un delete a la tabla maestro, el cual ejecuta un
triger para eliminar sus registros de detalle, hasta aqui todo va bien,
pero
resulta que lo que quiero es que cuando se borren las partidas del detalle
por cada una de ellas se llame a un procedimiento almacenado que actualice
el
inventario con los montos de las cantidades de producto que fueron
afectadas
previamente al dar de alta la factura, segun entiendo los registros que
fueron borrados en la tabla de partidas se guardan en la tabla deleted, y
como el trigger solo se lanza al final de la ejecucion de la instruccion
delete sobre la tabla de partidas entonces creo que lo que debo hacer es
recorrer la tabla deleted para invocar el procedimiento almacenado que
actualice mi tabla de inventario, consderando que en las partidas tengo la
clave del producto y el numero de productos que se vendieron.

espero no haber sido demasiodo extenso en mi explicacion.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida