triggers!!! un caso para la araña, jeje

11/08/2003 - 21:51 por davidojeda | Informe spam
como evitar que un trigger for update llame a otro trigger for
update.. y se genere un ciclo infinito



supongamos, una tabla de empleados, en donde


tenga 2 triggers for update
- uno para actualizar la edad
- otro para actualizar la antiguedad

si un usuario ejecuta un "update empleado set fechanac=x where
idempleado=1"

supongo que sucede lo sig
1. se actualiza el registro
2. se dispara el trigger que actualiza la edad
3. se dispara el trigger que actualiza la antiguedad
... ¿ se repetiran en un ciclo infinito de nuevo los pasos 2 y 3?

disculpen mi ignorancia pero esta duda no me la quiero quedar para
siempre..

como puedo hacer para evitar eso

que una tabla tenga 2 ( o mas ) triggers for update y se llamen en
ciclo infinito


gracias por su ayuda
saludos
 

Leer las respuestas

#1 Emilio Boucau
11/08/2003 - 22:52 | Informe spam
David,

mira Recursive Triggers en los Books On Line.

RECURSIVE_TRIGGERS
When set to ON, triggers are allowed to fire recursively. When set to OFF
(default), triggers cannot be fired recursively.



Note Only direct recursion is prevented when RECURSIVE_TRIGGERS is set to
OFF. To disable indirect recursion, you must also set the nested triggers
server option to 0.


The status of this option can be determined by examining the
IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

Saludos !

Emilio Boucau
Microsoft MVP SQL Server
http://www.portalsql.com
PASS Spanish Group
http://www.sqlpass.org

Buenos Aires - Argentina


begin 666 note.gif
M1TE&.#EA# `+`(#_`(2&`,# P"'Y! $```$`+ `````,``L`0 (:C(\(H'S[
68%R0&ED;M7,'[%S2YW#1)VJ;4P``.P``
`
end

Preguntas similares