sql中触发器当修改学生班级信息时自动修改相应班级的学生人数

怎么实现被修改的班级人数-1,修改后的班级人数+1呢?
2025-01-02 21:16:39
推荐回答(2个)
回答1:

create or replace trigger test_trigger

after update on 学生表

for each row

begin

      update 班级表 set 班级表.人数=班级表.人数-1 where 班级表.班级= :old.班级;

      update 班级表 set 班级表.人数=班级表.人数+1 where 班级表.班级= :new.班级;

      commit;

end;

回答2:

if (object_id('tri','tr')is not null )
drop trigger tri
go
create trigger tri 
ON dbo.学生表
FOR  UPDATE 
as 
IF UPDATE(班级id) 
declare @班级1 int 
declare @班级2 int 

SELECT  @班级1=班级id
from inserted 
SELECT @班级2=班级id 
FROM deleted 

update 班级表 set 人数=人数+1 where 班级= @班级1
update 班级表 set 人数=人数-1 where 班级= @班级2
GO