表:

 

View Code
CREATE TABLE [dbo].[Categorys](
    
[ID] [uniqueidentifier] NOT NULL,    
    
[CategoryDspName] [nvarchar](50NULL,
    
[ParentID] [uniqueidentifier] NULL    
 
CONSTRAINT [PK_Categorys] PRIMARY KEY CLUSTERED 
(
    
[ID] ASC
)
WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
ON [PRIMARY]

获取路径

 

 ;WITH t AS
(
    
SELECT id,  parentID, CategoryDspName,PATH = CAST(CategoryDspName AS NVARCHAR
    
FROM Categorys AS A
    
WHERE NOT EXISTS
          (
              
SELECT ID 
              
FROM Categorys
              
WHERE id = A.parentID
          )
    
UNION ALL
    
SELECT A.ID, A.ParentID,A.CategoryDspName, CAST(B.path+'/'+A.CategoryDspName AS NVARCHAR)
    
FROM Categorys AS A
    
JOIN t AS B  ON  A.parentID = B.ID
)
 
select ID,PATH from t;

 

posted on 2011-04-07 22:44  默西塞德  阅读(272)  评论(0编辑  收藏  举报