您的位置:首页 > 数据库

SqlServer:获取指定分类Id及其下属的所有子分类Id

2013-03-21 10:12 253 查看
分类表的表结构如下:

CREATE TABLE [dbo].[tbCategory](
[Id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[ParentId] [int] NOT NULL,
[CateName] [nvarchar](50) NOT NULL,
[DelFlag] [bit] NOT NULL
)


函数如下:

-- =============================================
-- Author:        iKwok
-- Create date: 2012年4月24日
-- Description:    获取指定分类Id及其下属的所有子分类Id
-- =============================================
CREATE FUNCTION [dbo].[f_GetCategoryList]
(
@Id int
)
RETURNS TABLE
AS
RETURN
(
with T as
(
select Id,ParentId,CateName,DelFlag from tbCategory where Id=@Id and DelFlag=0
union all
select tbSub.Id,tbSub.ParentId,tbSub.CateName,tbSub.DelFlag
from tbCategory as tbSub join T as tbTotal on tbSub.ParentId=tbTotal.Id
where tbSub.DelFlag=0 and tbTotal.DelFlag=0
)

select Id,ParentId,CateName from T
)
GO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: