Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Procedimientos anidados en sql server 2005

Estas en el tema de Procedimientos anidados en sql server 2005 en el foro de SQL Server en Foros del Web. Hola, soy nueva programando en sql, estoy estudiando y... TENGO UNA BD EN SQL SERVER 2005... necesito obtener los datos de un esquema, la solucion ...
  #1 (permalink)  
Antiguo 19/02/2014, 12:50
 
Fecha de Ingreso: febrero-2014
Mensajes: 6
Antigüedad: 10 años, 10 meses
Puntos: 0
Exclamación Procedimientos anidados en sql server 2005

Hola, soy nueva programando en sql, estoy estudiando y...
TENGO UNA BD EN SQL SERVER 2005... necesito obtener los datos de un esquema, la solucion que encontre fueron metodos recursivos...
COMO EXPLICO A CONTINUACION:
tengo UNA TABLA ITEM, UNA TABLA CLUSTER Y UNA TABLA ELEMENT, UN ITEM PUEDE SER UN CLUSTER O UN ELEMENT, Y A SU VEZ, UN CLUSTER ES UN CONJUNTO DE ITEMs...
TENGO UN PROCEDURE PARA CADA TABLA...
-EL DE ITEM CHEQUEA SI ES UN CLUSTER O UN ELEMENT Y EJECUTA EL PROC CORRESPONDIENTE...
-ELEMENT ES EL ELEMENTO DEL QUE QUIERO OBTENER SU VALOR, EL PROCEDURE DE ELEMENT VA INSERTANDO EN UNA TABLA LOS VALORES QUE VA OBTENIENDO...
*-*PERO, (EN EL PROCEDURE DE CLUSTER) PARA CADA CLUSTER TENGO QUE, OBTENER TODOS SUS ITEMs, Y POR CADA ITEM: (LLAMAR AL PROC DE ITEM, O SEA) SI ES UN ELEMENT, LO OBTENGO (LLAMO AL PROC DE ELEMENT), PERO SI ES UN CLUSTER, SE LLAMA RECURSIVAMENTE EL MISMO PROCEDIMIENTO...
AHI ES CUANDO ME DA EL ERROR DE LIMITE DE ANIDAMIENTO 32 (...MUCHOS CLUSTER QUE CONTIENEN CLUSTER...)
NECESITO ALGUNA FORMA DE REDEFINIR EL @@NESTLEVEL, ...O PARAR Y COMENZAR OTRA VEZ POR DONDE ME HABIA QUEDADO (CON EL RETURN SUPONGO...)

agradeceria su ayuda.....
  #2 (permalink)  
Antiguo 19/02/2014, 13:00
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Procedimientos anidados en sql server 2005

o sea tienes 32 niveles de profundidad??

estamos hablando de que tienes
padre
hijo
hijo
hijo
hijo
hijo
....
hijo???

una funcion recursiva no puede tener mas de 32 niveles de recursividad asi que debes de replantear tu solucion o tu esquema de base de datos...

http://stackoverflow.com/questions/5...ng-level-of-32

ahora si pones un ejemplo de tus datos se te podria ayudar a armar mejor el diseño :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 24/02/2014, 11:09
 
Fecha de Ingreso: febrero-2014
Mensajes: 6
Antigüedad: 10 años, 10 meses
Puntos: 0
Exclamación Respuesta: Procedimientos anidados en sql server 2005

Mmmmm... primero gracias por responder...
Lo que estoy haciendo no es diseñar la BD, esta ya existe y hay un sistema corriendo sobre ella, ...el problema es que esta basada en un estandar para almacenar informacion clinica (no se si has oido hablar de openEHR) con la estructura de Item, Cluster, Element que explique... o sea: padre, hijo, hijo.....hijo...por decirlo de otra forma... Ese estandar tiene esa estructura, yo simplemente quiero obtener los datos de ahi.... precisamente porque hasta ahora no se ha podido dado que este estandar es nuevo...
La solucion que encontre hasta ahora es ir llenando una tabla con los datos que voy obteniendo, y cuando llegue al #max de anidamiento, de un BREAK y return 1 para saber que no terminó, para ello utilizo var globales... Luego pienso hacer un job que ejecute este procedure cada un time, chequeando si terminó (si no me dio return 1) y de lo contrario volver a ejecutarlo, continuando con el llenado de la tabla que construyo y persisto en la BD con este proposito (obtener los datos clinicos organizados)...
Saludos...
  #4 (permalink)  
Antiguo 24/02/2014, 11:16
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Procedimientos anidados en sql server 2005

de todos modos aunque sea una base ya estructurada se puede obtener de diferentes maneras, con un ejemplo de tus datos se te podria ayudar mejor, pero si estas renuente a cambiar tu forma de pensar o a recibir ayuda, tambien es valido :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: anidados, procedimientos, server, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:07.