您的位置:首页 > 其它

两个触发器的例子

2007-06-21 19:12 274 查看
为测试建立两张表:表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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: