Funcion Recursiva

02/09/2003 - 04:05 por Carlos | Informe spam
Hola amigos del Foro, ire a mi pregunta:

Tengo una tabla como esta:

Id_Tabla | Cod_Fila | Id_Padre
-
10 | 05 | null
20 | 13 | 10
30 | 04 | 20

estoy tratando de desarrollar una funcion que me devuelva:
05.13.04 es decir la concatenacion del campo: Cod_Fila

a esta funcion le pasaria como parametro el Id_Tabla
por ejemplo:
fCodUbicacion (@Id_Tabla) = fCodUbicacion (30)

y que vaya llamandose con el identificador padre (campo: Id_Padre) y
concatenandose hasta que al final encuentre el valor Id_Padre = null y
termine el proceso

Espero su ayuda, gracias de antemano
 

Leer las respuestas

#1 Gustavo Larriera [MVP]
02/09/2003 - 04:53 | Informe spam
Es un problema muy interesante, una clausura transitiva con las que suelen
castigar en los cursos de teoria de bases de datos :-)

Si bien T-SQL no es un lenguaje recursivo en sentido estricto, un stored
procedure puede invocarse recursivamente (con un tope máximo de 32
invocaciones recursivas , controlar con @@NESTLEVEL).

Pero las clausuras transitivas tienen varios algoritmos no-recursivos muy
adecuados que pueden implementarse en T-SQL.

Voy a ver si puedo traer un buen ejemplo.

Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

This message is provided "AS IS" with no warranties expressed or implied,
and confers no rights.


"Carlos" wrote in message
news:ut$
Hola amigos del Foro, ire a mi pregunta:

Tengo una tabla como esta:

Id_Tabla | Cod_Fila | Id_Padre
-
10 | 05 | null
20 | 13 | 10
30 | 04 | 20

estoy tratando de desarrollar una funcion que me devuelva:
05.13.04 es decir la concatenacion del campo: Cod_Fila

a esta funcion le pasaria como parametro el Id_Tabla
por ejemplo:
fCodUbicacion (@Id_Tabla) = fCodUbicacion (30)

y que vaya llamandose con el identificador padre (campo: Id_Padre) y
concatenandose hasta que al final encuentre el valor Id_Padre = null y
termine el proceso

Espero su ayuda, gracias de antemano


Preguntas similares