日期:2014-05-17  浏览次数:20449 次

各位大侠:小弟求一触发器,实现在一个插入一条记录后,新插入记录的其中一个字段根据插入的字段的值在另一个表中对应的值自动插入。表述不清,请看例子
用户表:用户id,用户名,角色,权限
权限表:权限id,角色
  说明:用户属于角色,角色拥有不同权限。
在用户表插入 用户名 和 角色 后,权限 字段根据权限表里面的权限所属的角色将相应的 角色 自动插入数据库。

恳请各位大侠出手相助,小弟万分感激!

------解决方案--------------------
你的权限数据库完全不合理 用户表:用户id,用户名,角色,权限
权限表:权限id,角色

应该是角色来对应权限,然后再给用户赋予一个角色
----------------------
改: 用户表:用户id,用户名,角色(外键)
权限表:角色(nvarchar)主键,权限


------解决方案--------------------
用户,角色,权限,权限类型,角色权限,用户角色关联表

一共6个表,才行。

如果同时要求插入多条数据,用过储存过程,+事务管理


------解决方案--------------------
给用户表写一个触发器
按你后来的意思是通过匹配权限给用户表添加角色是吧(如果不是你只要改下字段就是了)
CREATE TRIGGER trg
ON 用户表
AFTER INSERT
AS 
BEGIN
SET NOCOUNT ON;
declare @quanxian nvarchar(50) ,@juese nvarchar(50) --定义变量
if exists(select 1 from inserted) --如果是插入操作
begin
set @quanxian=(select 权限 from inserted) --获取插入记录的权限
set @juese = (select 角色 from 权限表 where 权限名称=@quanxian) --获取权限表中的角色名称
update 用户表 set 角色=@juese where 权限=@quanxian --更新刚才插入的记录
end


大概过程就是这样 字段由你自己决定
如果你是按原来的思路想匹配
角色来插入权限 只要改换字段就行