为测试建立两张表:表db1与表db2;
触发器newjd所完成的功能是,只要向表db1插入一条数据就向表db2复制一条记录;
触发器trg所完成的功能是,当表bd2最大日期与最小日期相差40天时,清除较早的30天的记录;
代码如下
-----表1的触发器
CREATE TRIGGER newjd ON db1
FOR INSERT
AS
Declare @time1 datetime , @a char(10) , @b char(10)
Select @time1 = inserted.timetest , @a = inserted.a , @b = inserted.b
from db1,inserted
where db1.timetest = inserted.timetest
insert into db2 values(@time1,@a,@b)
go
-----表2的触发器
CREATE TRIGGER trg ON db2
for insert
as
declare @icount int , @time2 datetime
select @icount = datediff(d,min(timetest),max(timetest)) , @time2 = dateadd(dd,-10,max(timetest)) from DB2
if (@icount >= 40)
delete from db2
where timetest <= @time2
go
-----删除触发器
drop TRIGGER newjd --表1
drop TRIGGER trg --表2
-----控制触发器
--使用
alter table db1 enable trigger newjd
alter table db2 enable trigger trg
--屏蔽
alter table db1 disable trigger newjd
alter table db2 disable trigger trg