触发器 实现在一张表更新的同时,将另一张表中外键匹配的项的值加一
create table tbUserTow
(
Id int primary key,
score int default 0,
)
create table tbScoreCount
(
IdSum int foreign key references tbUserTow(Id),----外键约束
scoreCountId int not null,
ScoreSum int default 0,
primary key(IdSum,scoreCountId) ,----联合主键
)
insert into tbScoreCount values(1,1,0)
insert into tbScoreCount values(2,2,0)
insert into tbScoreCount values(3,3,0)
create trigger updateTbuserTowAfter -----创建触发器
on tbUserTow -----触发器所建的表
AFTER update -----触发器条件 After每个触发动作(UPDATE,DELETE,INSERT)包含多个触发器
as
begin
update tbScoreCount set ScoreSum=ScoreSum+1 where IdSum in (select Id from inserted) ----(where IdSum =(select id top 1 from inserted)参见)
end
以下为测试数据
update tbUserTow set score=1 where score='0'
update tbUserTow set score=0 where score='1'
update tbUserTow set score=2 where id='1'