背景:
项目在做完交接给用户的时候,需要同步原来系统数据库中的用户信息 在添加的时候不仅需要添加用户 还得给他们加权限 否则登录上去了 也使用不了
解决方案:
根据用户表中的isMananger字段来给用户一个初期的角色 用户类型主要有 1:管理员,2:领导 3:老师 4:学生
角色有 1:管理员 2:老师 3:学生 其中 用户类型为管理员的给 管理员角色 老师和学生的就还是老师或者学生的角色
一千来条记录 手动添加肯定不行 最后想到用存储过程来实现
在存储过程中 通过select 语句 找出符合要求的记录 能后在根据isManager 来确定 角色编号 插入用户角色表
create procedure addUserRole asbegin
declare @uid int
declare @isM int
declare @rid int;
--声明游标cursor_name(cursor_name是个多行结果集)
DECLARE youbiao CURSOR FOR select id,isManager from users where id=1;
open youbiao;
WHILE 1=1
BEGIN
FETCH NEXT FROM youbiao INTO @uid,@isM;
IF @@fetch_status!= 0 BREAK;
if @isM=1 set @rid=1;
else if @isM=2 set @rid=1;
else if @isM=3 set @rid=2;
else set @rid=3;
insert into user_role values(@uid,@rid);
--print @uid
END;
--关闭游标
close youbiao;
deallocate youbiao;-- 释放游标 否则在多次执行这个存储过程的时候会包 游标以存在的错误
end;
GO
执行 存储过程:
exec addUserRole