表结构:
Permission.Department表(用户部门表)
字段名称 | 数据类型 | 可空 | 默认值 | 说明 |
ID | int | <自增标识(1,1)> 数据标识 |
||
ParentID | int | ((0)) | 父部门标识 | |
Name | varchar(50) | <主键> 部门名称 |
||
Description | varchar(5000) | √ | 部门描述 | |
AllowReg | int | ((0)) | 是否允许用户注册 | |
ExpireTime | datetime | √ | 临时权限过期时间 | |
CreateTime | datetime | (getdate()) | 数据建立时间 | |
CreateUserID | int | √ | 数据建立者标识 |
SQL语句:
WITH Node([ID])
AS
(
SELECT [ID]
FROM [Permission].[Department]
WHERE [ID] = 2
UNION ALL
SELECT a.[ID]
FROM [Permission].[Department] a
JOIN Node ON a.[ParentID] = Node.[ID]
)
select *
FROM [Permission].[Department]
WHERE [ID] IN (SELECT [ID] FROM Node)
结果:查询出ID为2的所有子节点树形结构