SQL - ejecucion de triggers en varios registros

 
Vista:

ejecucion de triggers en varios registros

Publicado por Miguel (1 intervención) el 21/02/2006 00:16:51
Tengo definido un update trigger sobre una tabla. Cuando modifico datos de esta tabla de forma individual, es decir, un registro solamente el trigger funciona correctamente. En cambio cuando modifico a la vez un lote de registros, el trigger solo tiene efecto sobre uno de los registros.

Supongo que esto será normal. ¿Sabe alguien que debo hacer para que el trigger tenga efecto sobre todos los registros que se modifiquen?.

En concreto, cuando realizo la modificacion, lo hago desde un programa VB.NET, enviando un dateset con todos los registros modificados, eliminados y añadidos y configurando los objetos insertCommand, updateCommand y deleteCommand del dataAdapter apuntando cada uno hacia un un procedimiento almacenado y relaccionando los parametros apropiados a las columnas del dataset.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ejecucion de triggers en varios registros

Publicado por Isaias islas (5072 intervenciones) el 21/02/2006 00:57:09
Miguel

En las tablas temporales (DELETED, INSERTED), se almacenan TODOS los registros afectados en la tabla donde fue construido el TRIGGER, por lo tanto, si deseas hacer referencia a estos registros para actualizar alguna otra tabla en base a esta información debes hacerlo referenciando a esta tabla.

Por ejemplo:

UPDATE MyTablaDestino SET a.Saldo = a.Saldo - del.Saldo
FROM MyTablaDestino a JOIN DELETED del
ON a.ID = del.ID

Este instruccion contenida en el TRIGGER de la tabla "VENTAS", actualiza el SALDO de la tabla "MyTablaDestino" de TODOS los registros que se modificaron en la tabla VENTAS.

¿Me explique?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar