根据角色已有的权限设置
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