Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить всех потомков в дереве? / 3 сообщений из 3, страница 1 из 1
18.04.2002, 10:58
    #32028196
Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить всех потомков в дереве?
Привет народу!
А не поделится-ли кто-нить процедуркой получения всех потомков узла дерева, а? Ну нужно очень! Дерево стандартное - id,parentid,name.

Буду безмерно благодарен!
...
Рейтинг: 0 / 0
18.04.2002, 13:55
    #32028226
DAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить всех потомков в дереве?
Для подобной таблицы я написал функцию. Можете модифицировать под свою таблицу.
Если что не ясно - dalw@cis-kiev.com
ALTER
FUNCTION f_TreeTreeObject
-- Дерево элемента дерева об'ектов.
(@Id int) -- Идентификатор элемента дерева об'ектов
RETURNS @Tree table ([Id] [int],[IdParent] [int],
[IdObj] [int],
[Name] [varchar](50) collate database_default,
[Level] [int])
AS BEGIN declare @Level int
if @Id is NULL RETURN select @Level=0
insert into @Tree
select @Id,0,IdObj,Name,@Level
from TreeObject where Id = @Id
while 1 = 1 begin insert into @Tree
select a.Id,b.Id,a.IdObj,a.Name,@Level+1
from TreeObject a, @Tree b where a.IdParent = b.Id and
Level = @Level
if @@ROWCOUNT = 0 break select @Level=@Level+1 end
RETURN END
-- #### (c) "PolySystem" 28.03.01 ########################

GO
ВЫЗОВ
select * from dbo.f_TreeTreeObject(1)


Id IdParent IdObj Name Level
----------- ----------- ----------- -------------------------------------------------- -----------
1 0 5 Рабочий стол 0
82 1 10 Справочники 1
87 1 10 Документы 1
458 1 10 Папка Korna 1
487 1 10 Отчеты Янюк 1
533 1 10 Cher 1
558 1 10 Бухгалтер СЭП 1
559 1 10 Бухгалтер опердня 1
592 1 10 Клиенты 1
593 1 10 Контракты 1
647 1 10 Бух корсчетов 1
679 1 10 Статотчетность 1
883 1 10 Папка Polubinsky 1
893 1 10 Папка Федорова 1
973 1 118 Импорт документов 1
994 1 10 Папка Суворова 1
99 82 10 Ведение справочников 2
102 82 10 Нормативно-справочная инф. 2
88 87 116 Документы Галины 2
193 87 10 Документы Андрея 2
223 87 116 Папка финансовых документов 2
452 87 130 Списание курсовой разницы 2
226 87 116 Док-ки 2
312 87 116 Юрий Валентинович 2
434 87 117 Документы прошлых дней 2
886 87 116 Финансовые документы 2
882 87 131 Системные документы 2
811 87 116 Документы Игоря 2
986 87 10 Папка Марины 2
984 87 120 Ведение справочников 2
459 458 20 Ведомость за период 2
461 458 20 Реестр документов 2
484 458 20 Расчет процентов 2
...
Рейтинг: 0 / 0
19.04.2002, 04:59
    #32028266
Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить всех потомков в дереве?
Спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить всех потомков в дереве? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]