Recursividad de procedimientos almacenados

14/04/2004 - 12:56 por Pedro J. | Informe spam
Hola:

Tengo un problema grave y es el como poder solucionar el error
"Maximum stored procedure, function, trigger, or view nesting level exceeded
(limit 32)". Este error se produce en un procedimiento almacenado que a su
vez llama a otro que a su vez llama a otro que a su vez llama al primero, no
se trata de un error de lógica, ya que la recursividad de estos
procedimientos es necesaria y el error no se produce siempre, sólo se
produce cuando la recursividad es "excesiva" para el SQL.
¿hay algo en el SQL que pueda configurar para que aumente el nivel de
recursividad para poder solucionar esto?.

Muchas gracias.

Pedro J.

Preguntas similare

Leer las respuestas

#6 Pedro J.
14/04/2004 - 16:57 | Informe spam
Bueno... gracias a todos... mucho me temo que tendré que sacar el código a
unas DLLs o algo parecido y probar a ver si tengo más suerte.
El problema está en realizar una subasta, cuando se inserta una puja se
desbancan otras con menos precios, pero si las desbancadas tienen la marca
de puja automática a su vez generan una nueva puja que de nuevo tiene/puede
desbancar a otras y así sucesivamente hasta llegar al precio máximo del
producto o el precio máximo que está dispuesto pagar el que hizo la puja
automática. Como veis es un proceso puramente recursivo y puede pasar,
evidentemente de 32 anidamientos. Si teneis alguna ayuda/idea será
bienvenida.

Gracias y un saludo.

Pedro J.





"Pedro J." escribió en el mensaje
news:
Hola:

Tengo un problema grave y es el como poder solucionar el error
"Maximum stored procedure, function, trigger, or view nesting level


exceeded
(limit 32)". Este error se produce en un procedimiento almacenado que a su
vez llama a otro que a su vez llama a otro que a su vez llama al primero,


no
se trata de un error de lógica, ya que la recursividad de estos
procedimientos es necesaria y el error no se produce siempre, sólo se
produce cuando la recursividad es "excesiva" para el SQL.
¿hay algo en el SQL que pueda configurar para que aumente el nivel de
recursividad para poder solucionar esto?.

Muchas gracias.

Pedro J.


Respuesta Responder a este mensaje
#7 Tako
14/04/2004 - 17:09 | Informe spam
A ver, cualquier proceso recursivo se puede pasar a uno iterativo, puede
ser más o menos costoso, limpio o complicado pero se puede hacer.

Además así a botepronto tu proceso tampoco parece que vaya a ser muy
difícil de pasar a bucles, yo que tú probaría a hacerlo con TSQL y vas a ver
como te sale.

Y si no sale siempre puedes peguntar por aquí otra vez :)

"Pedro J." wrote in message
news:
Bueno... gracias a todos... mucho me temo que tendré que sacar el código a
unas DLLs o algo parecido y probar a ver si tengo más suerte.
El problema está en realizar una subasta, cuando se inserta una puja se
desbancan otras con menos precios, pero si las desbancadas tienen la marca
de puja automática a su vez generan una nueva puja que de nuevo


tiene/puede
desbancar a otras y así sucesivamente hasta llegar al precio máximo del
producto o el precio máximo que está dispuesto pagar el que hizo la puja
automática. Como veis es un proceso puramente recursivo y puede pasar,
evidentemente de 32 anidamientos. Si teneis alguna ayuda/idea será
bienvenida.

Gracias y un saludo.

Pedro J.





"Pedro J." escribió en el mensaje
news:
> Hola:
>
> Tengo un problema grave y es el como poder solucionar el error
> "Maximum stored procedure, function, trigger, or view nesting level
exceeded
> (limit 32)". Este error se produce en un procedimiento almacenado que a


su
> vez llama a otro que a su vez llama a otro que a su vez llama al


primero,
no
> se trata de un error de lógica, ya que la recursividad de estos
> procedimientos es necesaria y el error no se produce siempre, sólo se
> produce cuando la recursividad es "excesiva" para el SQL.
> ¿hay algo en el SQL que pueda configurar para que aumente el nivel de
> recursividad para poder solucionar esto?.
>
> Muchas gracias.
>
> Pedro J.
>
>


Respuesta Responder a este mensaje
#8 Miguel Egea
14/04/2004 - 18:08 | Informe spam
Suena interresante como objetivo de TSQL, ponos la estructura de los datos y
un par de ejemplos con unos pocos datos y lo intentamos gustosos


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)
"Pedro J." escribió en el mensaje
news:
Bueno... gracias a todos... mucho me temo que tendré que sacar el código a
unas DLLs o algo parecido y probar a ver si tengo más suerte.
El problema está en realizar una subasta, cuando se inserta una puja se
desbancan otras con menos precios, pero si las desbancadas tienen la marca
de puja automática a su vez generan una nueva puja que de nuevo


tiene/puede
desbancar a otras y así sucesivamente hasta llegar al precio máximo del
producto o el precio máximo que está dispuesto pagar el que hizo la puja
automática. Como veis es un proceso puramente recursivo y puede pasar,
evidentemente de 32 anidamientos. Si teneis alguna ayuda/idea será
bienvenida.

Gracias y un saludo.

Pedro J.





"Pedro J." escribió en el mensaje
news:
> Hola:
>
> Tengo un problema grave y es el como poder solucionar el error
> "Maximum stored procedure, function, trigger, or view nesting level
exceeded
> (limit 32)". Este error se produce en un procedimiento almacenado que a


su
> vez llama a otro que a su vez llama a otro que a su vez llama al


primero,
no
> se trata de un error de lógica, ya que la recursividad de estos
> procedimientos es necesaria y el error no se produce siempre, sólo se
> produce cuando la recursividad es "excesiva" para el SQL.
> ¿hay algo en el SQL que pueda configurar para que aumente el nivel de
> recursividad para poder solucionar esto?.
>
> Muchas gracias.
>
> Pedro J.
>
>


Respuesta Responder a este mensaje
#9 ulises
14/04/2004 - 20:42 | Informe spam
Sería interesante que envies las estructura de tus tablas
para hacer el ejercicio, tal vez lo para lo tuyo sea
necesario recursividad sino una implementación a través de
un bucle o algo parecido.

Saludos,
Ulises

Bueno... gracias a todos... mucho me temo que tendré que


sacar el código a
unas DLLs o algo parecido y probar a ver si tengo más


suerte.
El problema está en realizar una subasta, cuando se


inserta una puja se
desbancan otras con menos precios, pero si las


desbancadas tienen la marca
de puja automática a su vez generan una nueva puja que de


nuevo tiene/puede
desbancar a otras y así sucesivamente hasta llegar al


precio máximo del
producto o el precio máximo que está dispuesto pagar el


que hizo la puja
automática. Como veis es un proceso puramente recursivo y


puede pasar,
evidentemente de 32 anidamientos. Si teneis alguna


ayuda/idea será
bienvenida.

Gracias y un saludo.

Pedro J.





"Pedro J." escribió en el mensaje
news:
Hola:

Tengo un problema grave y es el como poder solucionar




el error
"Maximum stored procedure, function, trigger, or view




nesting level
exceeded
(limit 32)". Este error se produce en un procedimiento




almacenado que a su
vez llama a otro que a su vez llama a otro que a su vez




llama al primero,
no
se trata de un error de lógica, ya que la recursividad




de estos
procedimientos es necesaria y el error no se produce




siempre, sólo se
produce cuando la recursividad es "excesiva" para el




SQL.
¿hay algo en el SQL que pueda configurar para que




aumente el nivel de
recursividad para poder solucionar esto?.

Muchas gracias.

Pedro J.






.

Respuesta Responder a este mensaje
#10 Pedro J.
16/04/2004 - 11:06 | Informe spam
Muchas gracias de nuevo a los que os habeis ofrecido.
Realmente ya lo he resuelto de forma iterativa en lugar de recursiva.
Simplemente en lugar de llamar al procedimiento de inserción de pujas he
insertado directamente el registro en una tabla provisional, y la inserción
entra en un bucle de inserciones (valgan tantas redundancias) hasta que esta
tabla esté vacía.

Un saludo.
Pedro J.



"ulises" escribió en el mensaje
news:1c96a01c42250$30bf7bc0$
Sería interesante que envies las estructura de tus tablas
para hacer el ejercicio, tal vez lo para lo tuyo sea
necesario recursividad sino una implementación a través de
un bucle o algo parecido.

Saludos,
Ulises

Bueno... gracias a todos... mucho me temo que tendré que


sacar el código a
unas DLLs o algo parecido y probar a ver si tengo más


suerte.
El problema está en realizar una subasta, cuando se


inserta una puja se
desbancan otras con menos precios, pero si las


desbancadas tienen la marca
de puja automática a su vez generan una nueva puja que de


nuevo tiene/puede
desbancar a otras y así sucesivamente hasta llegar al


precio máximo del
producto o el precio máximo que está dispuesto pagar el


que hizo la puja
automática. Como veis es un proceso puramente recursivo y


puede pasar,
evidentemente de 32 anidamientos. Si teneis alguna


ayuda/idea será
bienvenida.

Gracias y un saludo.

Pedro J.





"Pedro J." escribió en el mensaje
news:
Hola:

Tengo un problema grave y es el como poder solucionar




el error
"Maximum stored procedure, function, trigger, or view




nesting level
exceeded
(limit 32)". Este error se produce en un procedimiento




almacenado que a su
vez llama a otro que a su vez llama a otro que a su vez




llama al primero,
no
se trata de un error de lógica, ya que la recursividad




de estos
procedimientos es necesaria y el error no se produce




siempre, sólo se
produce cuando la recursividad es "excesiva" para el




SQL.
¿hay algo en el SQL que pueda configurar para que




aumente el nivel de
recursividad para poder solucionar esto?.

Muchas gracias.

Pedro J.






.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida