/**//* 插入角色的同时插入角色拥有的权限,权限使用权限列表表示,列表用逗号分隔权限的id */ createprocedure AddRole @RoleNamevarchar(50), @Remarkvarchar(200), @AuthorizeListvarchar(8000), @lastIDint output as begintran insertinto dbo.RoleInfo(RoleName,Remark) values(@RoleName,@Remark) select@lastID=scope_identity() declare@iint set@AuthorizeList=@AuthorizeList+',' set@i=charindex(',',@AuthorizeList) while@i>0 begin insertinto RoleAuthorizeInfo values(cast(@lastIDasint),convert(int,left(@AuthorizeList,@i-1))) set@AuthorizeList=substring(@AuthorizeList,@i+1,8000) set@i=charindex(',',@AuthorizeList) end if@@error<>0 begin rollbacktran end else begin committran end go declare@idint exec AddRole 'sdfsdf','sfsdfsf','111,222',@id output select@id go
/* 更新角色信息,同时更新权限信息 */
createprocedure UpdateRoleAuth @RoleIDint, @RoleNamevarchar(50), @Remarkvarchar(200), @AuthListvarchar(8000) as begintran update RoleInfo set RoleName=@RoleID,Remark=@Remarkwhere RoleInfoAutoID=@RoleID deletefrom RoleAuthorizeInfo where RoleInfoAutoID=@RoleID declare@iint set@AuthList=@AuthList+',' set@i=charindex(',',@AuthList) while@i>0 begin insertinto RoleAuthorizeInfo values(@RoleID,convert(int,left(@AuthList,@i-1))) set@AuthList=substring(@AuthList,@i+1,8000) set@i=charindex(',',@AuthList) end if@@error<>0 begin rollbacktran end else begin committran end go