完全にテストされておらず、頭のてっぺんからタイプされています...
DECLARE @FOLDER VARCHAR(200)
DECLARE @TOPID AS INT
DECLARE @MYID As int
CREATE TABLE #tmp
(
[id] INT,
[path] VARCHAR(50)
)
DECLARE tempCursor CURSOR FOR SELECT id FROM albums ORDER BY id
OPEN tempCursor
FETCH NEXT FROM tempCursor INTO @TOPID
WHILE @@FETCH_STATUS = 0
BEGIN
SET @FOLDER = ''
SET @MYID = @TOPID
WHILE @MYID is not null
BEGIN
SELECT @MYFOLDER = foldername FROM albums WHERE id = @MYID
SET @FOLDER = @MYFOLDER + '/' + @FOLDER
SELECT @MYID = parent FROM albums WHERE id = @MYID
END
INSERT INTO #tmp
SELECT @TOPID, @FOLDER
FETCH NEXT FROM tempCursor INTO @TOPID
END
CLOSE tempCursor
DEALLOCATE tempCursor
SELECT * FROM #tmp
DROP TABLE #tmp
これで、少なくともパス名を取得する方法がわかります。ファイル名が保存されている場所を指定したことはありません。
ところで、これは遅くなるでしょう。カーソルを使うのは嫌いです...