SQL SERVER触发器

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:21:11
在节约归还记录表中,当应归还日期晚于现在时刻,而且还书标志为0时,自动在罚款表中添加一条罚款记录,有意的直接HI百度

if exists (select * from sysobjects where name='tr_借阅归还记录表_update' and xtype='TR')
drop trigger tr_借阅归还记录表_update
go
create trigger tr_借阅归还记录表_update
on dbo.借阅归还记录表 for update
as
begin
declare @count int
if update(实际归还日期)
begin
select @count=count(*) from inserted
update a set a.现存数量=a.现存数量+@count from 图书信息表 a inner join inserted b on a.图书编号=b.图书编号 where b.实际归还日期 is not null
update a set a.现存数量=a.现存数量-@count from 图书信息表 a inner join inserted b on a.图书编号=b.图书编号 where b.实际归还日期 is null
insert into 罚款表 select a.证号,b.读者,c.价格*0.1 from 借阅人员表 a inner join inserted b on a.姓名=b.读者 inner join 图书信息表 c on b.图书编号=c.图书编号 where b.应归还日期<b.实际归还日期 and b.实际归还日期 is not null
end
end

触发器的触发条件必须是执行了inset、update、delete,看你如何操作了