急,触发器问题!为什么在数据库里修改分值时组长的下平均分不会跟着变,关掉这个表后再打开这个表,里面的数据才变!
CREATE TRIGGER [tri_MonitorMark] ON dbo.employee
FOR INSERT, UPDATE
AS
--组长分数(本组有固定分人员平均分*组长系数)
declare @emp_grp_ID int,@emp_Name varchar(50),@emp_Mark numeric(18,5),@emp_MarkAvg numeric(18,5)
select @emp_grp_ID=emp_grp_ID,@emp_Name=emp_Name,@emp_Mark=emp_Mark from inserted
select @emp_MarkAvg=avg(emp_Mark) from employee where emp_grp_ID=@emp_grp_ID and emp_MonitorRate=0 and emp_sc_ID=4
update employee set emp_Mark=@emp_MarkAvg*emp_MonitorRate where emp_grp_ID=@emp_grp_ID and emp_MonitorRate<>0 and emp_sc_ID=4
员工里面分几个组,一个组有一到两个组长,员工有一个固定分数,组长有一个组长系数,组长的分数为本组有固定分人员平均分*组长系数,为什么在数据库里修改分值时组长的下平均分不会跟着变,关掉这个表后再打开这个表,里面的数据才变!
FOR INSERT, UPDATE
AS
--组长分数(本组有固定分人员平均分*组长系数)
declare @emp_grp_ID int,@emp_Name varchar(50),@emp_Mark numeric(18,5),@emp_MarkAvg numeric(18,5)
select @emp_grp_ID=emp_grp_ID,@emp_Name=emp_Name,@emp_Mark=emp_Mark from inserted
select @emp_MarkAvg=avg(emp_Mark) from employee where emp_grp_ID=@emp_grp_ID and emp_MonitorRate=0 and emp_sc_ID=4
update employee set emp_Mark=@emp_MarkAvg*emp_MonitorRate where emp_grp_ID=@emp_grp_ID and emp_MonitorRate<>0 and emp_sc_ID=4
员工里面分几个组,一个组有一到两个组长,员工有一个固定分数,组长有一个组长系数,组长的分数为本组有固定分人员平均分*组长系数,为什么在数据库里修改分值时组长的下平均分不会跟着变,关掉这个表后再打开这个表,里面的数据才变!
...全文
相关推荐
SQL Server 触发器 表的特定字段更新时,触发Update触发器
代码如下: create trigger TR_MasterTable_Update on MasterTable after update as if update ([Type])–当Type字段被更新时,才会触发此触发器 insert into MasterLogTable select Id ,(Case [Type] when 1 then ‘Type1’ when 2 then ‘Type2’ when 3 then ‘Type3’ when 4 then ‘Type4’ else ‘TypeDefault’ end) ,Name from inserted go 另外再补充一句
db文件打开工具
db文件打开的工具
sqlite 打开DB文件工具
打开、编辑DB文件,可以执行sql文件,适用于window系统、32位以上
MySQL 修改数据库名称的一个新奇方法
主要介绍了MySQL 修改数据库名称的一个新奇方法,MySQL 修改数据库名的一个变通方法,需要的朋友可以参考下
利用SQL Server触发器实现表的历史修改痕迹记录
在很多应用程序开发中,需要记录某些数据表的历史记录或修改痕迹,以便日后出现数据错误时进行数据排查。这种业务需求,我们可以通过数据库的触发器来轻松实现历史记录功能


疑难问题
