1. IDFoldera INT Primery Key IDENTITY
2. Nazivfoldera NCHAR 200
3. OpisFoldera NTEXT
4. IDParentFoldera INT
5. IDDiska INT
u toj tabeli se nalazi spisak svih foldera u nekom disku. Ukoliko je folder u ROOT-u diska polje IDParentFoldera je NULL, a ako nije tu je upisan odgovarajući ID
Interesuje me kako na osnovu naziva nekog foldera i njegovog ID-a naći celu putanju do ROOT foldera.
Primera radi pretrazujem sve foldere sa nazivom "Test". Kao rezultat dobijem samo 1 folder čiji je ID = 213. Sad na osnovu tog ID-a treba naći putanju do ROOT-a. Napisao sam jednu SP koja radi baš to što mi treba, ali me interesuje da li je to OK ili postoji bolje rešenje. SP sledi
Code:
CREATE PROCEDURE dbo.spFindPath
(
@IDFoldera INt
)
as
declare @IDParent Int
create table #Temp (
IDFoldera Int,
IDParentFoldera Int
)
select @IDParent=IDParentFoldera from tblFolders where idfoldera = @IDFoldera
insert into #temp (IDFoldera, IDParentFoldera) values (@IDFoldera, @IDparent)
while @IDParent is not null
begin
select @IDParent=IDParentFoldera, @IDFoldera=IDFoldera from tblFolders where idfoldera = @IDParent
insert into #temp (IDFoldera, IDParentFoldera) values (@IDFoldera, @IDparent)
end
select * from #temp
GO
CREATE PROCEDURE dbo.spFindPath
(
@IDFoldera INt
)
as
declare @IDParent Int
create table #Temp (
IDFoldera Int,
IDParentFoldera Int
)
select @IDParent=IDParentFoldera from tblFolders where idfoldera = @IDFoldera
insert into #temp (IDFoldera, IDParentFoldera) values (@IDFoldera, @IDparent)
while @IDParent is not null
begin
select @IDParent=IDParentFoldera, @IDFoldera=IDFoldera from tblFolders where idfoldera = @IDParent
insert into #temp (IDFoldera, IDParentFoldera) values (@IDFoldera, @IDparent)
end
select * from #temp
GO
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Da je važnije biti ljubazan nego biti u pravu