根据角色已有的权限设置

select ID,Name,Description,max(TheRight) as TheRight from( SELECT   

dbo.b_ApplicationModule.ID, dbo.b_ApplicationModule.Name,

dbo.b_ApplicationModule.Description,                

dbo.b_RoleRight.TheRight AS TheRight FROM     

dbo.b_ApplicationModule LEFT OUTER JOIN                

dbo.b_RoleRight ON dbo.b_ApplicationModule.ID = dbo.b_RoleRight.ModuleID LEFT

OUTER JOIN                

dbo.b_UserRole ON dbo.b_RoleRight.RoleID = dbo.b_UserRole.ID WHERE  

(dbo.b_UserRole.ID = '01') UNION SELECT  

dbo.b_ApplicationModule.ID, dbo.b_ApplicationModule.Name,

dbo.b_ApplicationModule.Description, 0 AS TheRight FROM    

dbo.b_ApplicationModule LEFT OUTER JOIN                

dbo.b_RoleRight ON dbo.b_ApplicationModule.ID = dbo.b_RoleRight.ModuleID LEFT

OUTER JOIN                

dbo.b_UserRole ON dbo.b_RoleRight.RoleID = dbo.b_UserRole.ID)T                

group by ID,Name,Description              

posted on 2013-01-12 00:40  DearBug  阅读(178)  评论(0编辑  收藏  举报