
05/10/2007, 09:05
|
 | Colaborador | | Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años, 2 meses Puntos: 38 | |
Utilizando CTE en SP en 2005 La seleccion recursiva de informacion en SQL 2005 se puede realizar utilizando Common Table Expressions.... aunque no se retornan en orden jerarquico...
Código:
------------------------------------------------------
-- Generacion de informacion de prueba del ejemplo
------------------------------------------------------
if object_id('tempdb..#tmpTempo') is not null Drop table #tmpTempo
create table #tmpTempo (Id_area int, nombre varchar(20), prearea int)
Insert into #tmpTempo values (1, 'papa uno', null)
Insert into #tmpTempo values (2, 'papa dos', null)
Insert into #tmpTempo values (3, 'papa tres', null)
Insert into #tmpTempo values (4, 'hijo uno', 1)
Insert into #tmpTempo values (5, 'hijo dos', 2)
Insert into #tmpTempo values (6, 'hijo tres', 3)
Insert into #tmpTempo values (7, 'U1', 4)
Insert into #tmpTempo values (8, 'U11', 7)
Insert into #tmpTempo values (9, 'U21', 8)
------------------------------------------------------
-- Inicia seleccion recursiva utilizando CTE.
------------------------------------------------------
Declare @IdNum int
Set @IdNum = 1; -- Seleccionar los hijos del registro 1
With Areas (Id_area, nombre, prearea)
AS
(
Select Id_area, nombre, prearea
from #tmpTempo
Where prearea = @IdNum
Union all
Select T.Id_area, T.nombre, T.prearea
From #tmpTempo T
Inner join Areas A
On T.prearea = A.Id_area
)
Select * from Areas
El formato se podria aplicar utilizando XML o bien haciendo un ciclo en la aplicacion (ASP), aunque ya seria tema de otro foro...
__________________ La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications. |