例如有2张表 当表一中增加一个人的时候,表二的人数自动增加,比如加一个 陈八 男 , 那么相应的表二的男的人数中就应该自动改为5,请问这样的触发器怎么写,我是新手麻烦大家了
姓名 性别
赵一 女
孙二 女
张三 男
李四 男
王五 男
刘六 女
方七 男性别 人数
女 3
男 4
姓名 性别
赵一 女
孙二 女
张三 男
李四 男
王五 男
刘六 女
方七 男性别 人数
女 3
男 4
as
select 性别,count(1) as 人数 from 表
as
select 性别,count(1) as 人数 from 表 group by 性别
as
begin
if exists(select 1 from 表二 where 性别 = (select 性别 from inserted))
update 表二 set 性别 = 性别 + 1
else
insert into 表二 values((select 性别 from inserted),1)
end
for insert
as
begin
declare @sex char(2)
select @sex=性别 from inserted
if @sex='男'
update 表2 set 人数=人数+1 where 性别='男'
else
update 表2 set 人数=人数+1 where 性别='女'
end
create trigger tr_insert on 表1 after insert
As
update 表2 set [人数]=[人数]+1 where [性别]=inserted.[性别]
create trigger trigger_a
on 表1
for insert,update,delete
as
set nocount on update 表2
set 人数=人数+isnull(ins,0)-isnull(del,0)
from 表2 a
left join (select 性别,count(1)ins from INSERTED group by 性别) b on a.性别=b.性别
left join (select 性别,count(1)del from DELETED group by 性别) c on a.性别=c.性别set nocount off
on 表1
for insert
asupdate 表2
set 人数=人数+isnull(ins,0
from 表2 a
right join (select 性别,count(1)ins from INSERTED group by 性别)i on i.性别 = a.性别