triggers anidados

07/02/2005 - 19:15 por xenon | Informe spam
Voy a intertar exponer mi problema:
Tengo dos trigger anidados, es decir, el trigger A dispara al trigger B y
viceversa.
Para controlar que solo se ejecute una sola vez use la funcion global
@@nestlevel de la siguiente forma:

Select @@nestlevel
If @@nestlevel =1


La idea de esto es que la primera vez que salte el trigger entre en el
codigo y la siguiente vez no ya que el valor de nestlevel ya es mayor que 1.

El problema surge en SQL Server 7 que no funciona mientras que en SQL Server
2000 funciona bien.
Agradeceria si alguien me puede indicar que puede fallar, no se si en SQL 7
no vale 1 inicialmente y no entra la primera vez o es algun parametro que no
esta bien configurado en el servidor, decir que el check de permitir la
activacion de desencadenadores anidados esta activado.
¿De que forma podria controlar el error y saber lo que esta pasando?

GRACIAS!!!!
 

Leer las respuestas

#1 Alejandro Mesa
07/02/2005 - 19:31 | Informe spam
Puedes chequear el resultado del procedimiento almacenado sp_configure. Busca
"nested triggers", ve si el valor de config_value es mayor que 0, el maximo
valor puede ser 32.


AMB

"xenon" wrote:

Voy a intertar exponer mi problema:
Tengo dos trigger anidados, es decir, el trigger A dispara al trigger B y
viceversa.
Para controlar que solo se ejecute una sola vez use la funcion global
@@nestlevel de la siguiente forma:

Select @@nestlevel
If @@nestlevel =1


La idea de esto es que la primera vez que salte el trigger entre en el
codigo y la siguiente vez no ya que el valor de nestlevel ya es mayor que 1.

El problema surge en SQL Server 7 que no funciona mientras que en SQL Server
2000 funciona bien.
Agradeceria si alguien me puede indicar que puede fallar, no se si en SQL 7
no vale 1 inicialmente y no entra la primera vez o es algun parametro que no
esta bien configurado en el servidor, decir que el check de permitir la
activacion de desencadenadores anidados esta activado.
¿De que forma podria controlar el error y saber lo que esta pasando?

GRACIAS!!!!

Preguntas similares