Asignar variables dentro de una función

30/05/2007 - 15:10 por Mauricio | Informe spam
Hola a todos,
tengo una función dentro de la cual tengo lo siguiente:

WHILE @parentId <> NULL
BEGIN
SELECT @id = @parentID
SELECT @parentID = IdPadre
FROM PROYECTOS
WHERE IdProyecto = @id

END
Dentro del loop tengo que asignar a una variable un campo de la
tabla proyectos, es decir que quiero hacer algo como:
SELECT @ruta = @ruta + ' ' + Nombre FROM PROYECTOS WHERE IdProyecto =
@id.
Se puede hacer eso? Cómo?
Muchas gracias.

Mauricio
Copenhague, Dinamarca
 

Leer las respuestas

#1 Jesús López
30/05/2007 - 15:42 | Informe spam
¿Esta es la función que quieres?

CREATE FUNCTION RutaProyecto(
@IdProyecto int
) RETURNS varchar(8000)
AS
BEGIN
DECLARE @Ruta varchar(8000), @IdProyectoPadre int

SELECT @Ruta = NombreProyecto,
@IdProyectoPadre = IdProyectoPadre
FROM Proyectos
WHERE IdProyecto = @IdProyecto

WHILE @IdProyectoPadre IS NOT NULL
BEGIN
SELECT @Ruta = NombreProyecto + '\' + @Ruta,
@IdProyectoPadre = IdProyectoPadre
FROM Proyectos
WHERE IdProyecto = @IdProyectoPadre
END
RETURN @Ruta
END


Pero ¿para qué quieres esta función si el procedimiento almacenado
ObtenerSubarbolProyectos ya te la da?

Saludos:

Jesús López
www.solidq.com




"Mauricio" escribió en el mensaje
news:
Hola a todos,
tengo una función dentro de la cual tengo lo siguiente:

WHILE @parentId <> NULL
BEGIN
SELECT @id = @parentID
SELECT @parentID = IdPadre
FROM PROYECTOS
WHERE IdProyecto = @id

END
Dentro del loop tengo que asignar a una variable un campo de la tabla
proyectos, es decir que quiero hacer algo como:
SELECT @ruta = @ruta + ' ' + Nombre FROM PROYECTOS WHERE IdProyecto = @id.
Se puede hacer eso? Cómo?
Muchas gracias.

Mauricio
Copenhague, Dinamarca


Preguntas similares