[MSSQL] Rekurencja? Tabela, która tworzy drzewko
Kurciok - 19-09-2007 00:08
[MSSQL] Rekurencja? Tabela, która tworzy drzewko
Mam tabele która przechowuje menu strony internetowej. Ma ona kolumny:
idc int,
nazwa char[100],
fidc int
Menu ma formę drzewka, także każdy się już domyśla że fidc jest kluczem foreign na tą samę tabelę (na jej klucz primary idc). Całość tworzy wielopoziomowe drzewko.
I tutaj pytanie czy w MSSQL da się zrobić jakoś rekurencję? Bo mam problemy z poruszaniem się pod tym drzewku.
Pierwszą rzeczą jaką bym chciał zrobić to zwrócenie w Select wszystkich punktów węzłowych wybranego węzła, które prowadzą do korzenia drzewka.
Powiedzmy że nasze drzewko wygląda tak
Piętro I
Piętro IIa
Piętro IIIa
Piętro IIb
Piętro IIIa
Piętro IVa
Piętro IIc
A ja chciałbym napisać procedurę która jako parametr przyjmie idc któregoś węzła np. (Piętro IVa) i w Select zwróci mi wszystkie węzły, które prowadzą do korzenia drzewka czyli w tym przypadku:
Piętro IVa
Piętro IIIa
Piętro IIb
Piętro I
Coś mi sie wydaje że będzie tutaj potrzeba rekurencja, ale nie wiem jak zabrać się do tego w bazie danych.
Grzegorz Danowski - 20-09-2007 00:03
Użytkownik "Kurciok" <kurciok@poczta.BEZSPAMUonet.pl> napisał w wiadomości news:fcp6t3$a11$1@atlantis.news.tpi.pl... > I tutaj pytanie czy w MSSQL da się zrobić jakoś rekurencję? Bo mam > problemy z poruszaniem się pod tym drzewku.
Mało konkretnie, ale może Ci się przyda: http://www.google.com/search?hl=pl&r...+recursion&lr=, a potem np. pierwszy znaleziony link: http://www.sqlservercentral.com/colu...server2005.asp.
Pozdrawiam Grzegorz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
[MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?=
MSSQL Express czy Oracle Express
MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
[MSSQL 2000] =?ISO-8859-2?Q?wywo=B3anie_procesu_z_poziomu_?==?ISO-8859-2?Q?job=27a?=
[MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?=
Pobierananie danych z innej bazy danych w MSSQL
Migracja MSSQL 2005 CTP na 2005 Express
zanotowane.pldoc.pisz.plpdf.pisz.pladwokat.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|