Реферат: Новые возможности T-SQL в MS SQL Server 2005
--------------------------------------------------
1 Parent1 0 1
2 Parent2 0 1
3 Child1 1 2
4 Child11 3 3
5 Child12 3 3
Общий принцип построения рекурсивного выражения
WITH ИмяCTE (Определение) AS ( SELECT … -- Выборка с начальным условием, UNION ALL -– Объединение результатов SELECT … -- Выборка определяющаяя шаг рекурсии INNER JOIN CTE.ДочернийID = ИмяТаблицы.РодительскийID –- Присоединение «по родителю» ) |
Без использования виртуального представления, для достижения того же результата придется написать значительно более сложный запрос:
DECLARE @CurrentID int DECLARE @Level int SELECT TOP(1) @CurrentID = BrandID FROM Brands ORDER BY BrandID DECLARE @StackTable TABLE (ID int, Level int) DECLARE @OutputTable TABLE (ID int, [Name] nvarchar(32), ParentID int, Level int) INSERT INTO @StackTable VALUES(@CurrentID, 1) SET @Level = 1 WHILE @Level > 0 BEGIN IF EXISTS (SELECT * FROM @StackTable WHERE Level = @Level) BEGIN SELECT @CurrentID = ID FROM @StackTable WHERE Level = @Level INSERT INTO @OutputTable SELECT BrandID, [Name], ParentID, @Level AS Level FROM Brands К-во Просмотров: 551
Бесплатно скачать Реферат: Новые возможности T-SQL в MS SQL Server 2005
|