sp_helptext proc_GetCanAddGroup go CREATE proc proc_GetCanAddGroup (--返回可以添加的权限组,如当前目录下添加了权限组之后无法再添加 @CatalogId int,--目录id @GroupId int--权限id ) as begin with getall as ( select c.*,g.Isinherit,g.e_state from ECM_CatalogTable c left join ECM_Grouping g on c.id=g.c_id where c.[State]=0 ), parent as ( select * from getall g where g.id=@CatalogId union all select g.* from getall g inner join parent p on g.id=p.ParentId ) , getCatalogId as( select id from parent where Isinherit=1 and e_state=0 group by id union select id from parent where e_state=0 and id=@CatalogId --union:并集,合并 ) select * from userrolegroup select groupname as lookname,id as lookvalue from userrolegroup where id not in( select g_id from ECM_Bygroup where r_id in ( select id from ECM_Grouping where c_id in (select id from getCatalogId)) ) and u_state=0 union select groupname as lookname,id as lookvalue from userrolegroup where id in( select g_id from ECM_Bygroup where r_id = @GroupId) and u_state=0 end