¿Qué sucede si?

03/07/2003 - 18:02 por jrcz | Informe spam
Hola Compañeros...

Estoy creando un trigger que se desencadenará cuando se
realice un UPDATE.

PREGUNTAS:
-
¿Qué sucede si dentro del trigger vuelvo a realizar un
UPDATE sobre la tabla?

¿Se desencadena nuevamente el trigger por cada fila
afectada?

De ser así ¿Es posible evitar el desencadenamiento en
cadena? ¿cómo lo logro?

ACLARACIONES:
-
Necesito evitar el desencadenamiento en cadena.


Gracias... :)

Preguntas similare

Leer las respuestas

#1 Javier Loria\(MVP\)
03/07/2003 - 20:23 | Informe spam
Hola:
¿Qué sucede si dentro del trigger vuelvo a realizar un UPDATE sobre la


tabla?
Se actualiza la Tabla :)
¿Se desencadena nuevamente el trigger por cada fila afectada?


No, no se dispara nuevamente, amenos que hayas cambiando la opcion de la
Base de Datos de "Recursive Trigger"
De ser así ¿Es posible evitar el desencadenamiento en cadena? ¿cómo lo
logro?
No hagas nada :)

Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.



"jrcz" wrote in message
news:00bb01c3417c$853810a0$
Hola Compañeros...

Estoy creando un trigger que se desencadenará cuando se
realice un UPDATE.

PREGUNTAS:
-
¿Qué sucede si dentro del trigger vuelvo a realizar un
UPDATE sobre la tabla?

¿Se desencadena nuevamente el trigger por cada fila
afectada?

De ser así ¿Es posible evitar el desencadenamiento en
cadena? ¿cómo lo logro?

ACLARACIONES:
-
Necesito evitar el desencadenamiento en cadena.


Gracias... :)
Respuesta Responder a este mensaje
#2 Isaías
03/07/2003 - 20:23 | Informe spam
Bueno, la verdad de las cosas es que nunca he tenido la
necesidad de ACTUALIZAR mi tabla dentro del mismo TRIGGER
de actualizacion, a simple vista, se corre el riesgo de
entrar en "Ciclos Infinitos" o bien que el motor de SQL
Server envie un mensaje de error hasta llegar al numero 32
de ejecucion del trigger.

¿Cual es la necesidad de actualizar su tabla dentro del
mismo trigger?

Gracias.
Respuesta Responder a este mensaje
#3 jrcz
03/07/2003 - 20:48 | Informe spam
Gracias Javier, pero:

¿Cómo verifico el estado de RECURSIVE_TRIGGERS?

¿Cómo cambio el estado de RECURSIVE_TRIGGERS?

Gracias... :)
Respuesta Responder a este mensaje
#4 jrcz
04/07/2003 - 00:59 | Informe spam
Gracias nuevamente Javier...

En caso que el estado de RECURSIVE_TRIGGERS sea TRUE,
podría ejecutar el comando que me distes antes de realizar
el UPDATE sobre la tabla y luego nuevamente vuelvo a
dejarlo como estaba, es decir:

-
CREATE TRIGGER MyTrigger
ON dbo.MyTable
FOR INSERT, UPDATE, DELETE
AS

EXEC sp_dboption 'MiBase', 'recursive triggers', 'FALSE'

.
.
.
.

EXEC sp_dboption 'MiBase', 'recursive triggers', 'TRUE'

-

¿Podría hacerlo sin problema alguno?
¿Afecta algo en el desempeño?

Gracias... :)
Respuesta Responder a este mensaje
#5 Javier Loria\(MVP\)
04/07/2003 - 01:09 | Informe spam
Hola:
Ummm? No estoy seguro, pero me parece que SI.
Voy a ver si el fin de semana construyo una prueba.
Con respecto al desempeno, me parece que un trigger recursivo debe ser
una maldicion para el desempeño. Si te sirve de consuelo el maximo es 32
Niveles.
Tal vez si nos cuentas que quieres hacer? podemos ver otra alternativa.

Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"jrcz" wrote in message
news:0b7301c341b6$c7aa5cb0$
Gracias nuevamente Javier...

En caso que el estado de RECURSIVE_TRIGGERS sea TRUE,
podría ejecutar el comando que me distes antes de realizar
el UPDATE sobre la tabla y luego nuevamente vuelvo a
dejarlo como estaba, es decir:

-
CREATE TRIGGER MyTrigger
ON dbo.MyTable
FOR INSERT, UPDATE, DELETE
AS

EXEC sp_dboption 'MiBase', 'recursive triggers', 'FALSE'

.
.
.
.

EXEC sp_dboption 'MiBase', 'recursive triggers', 'TRUE'

-

¿Podría hacerlo sin problema alguno?
¿Afecta algo en el desempeño?

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