两个触发器的例子
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
触发器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
相关文章推荐
- SQL Server 两个触发器例子,大家看看怎么样?
- SQL Server 两个触发器例子
- 【Vegas原创】实现两个table人员同步的触发器
- Robot框架两个简单例子
- 去掉html标签与网页中script标签的两个常用例子,面试经常考
- 纠错 : 关于书籍<java核心技术 卷I 基础知识 第八版> 第五章 Employee/Manager 两个例子
- J2SE基础夯实系列之equals 和 ==的两个特殊例子
- 两个进程进行通信的简单例子
- Python对两个有序列表进行合并和排序的例子
- 关于事务,存储过程,触发器的简单例子
- QT中QTreeView学习的两个例子
- MySQL 触发器例子(两张表同步增加和删除)
- 两个小例子彻底明白python decorator
- 关于控制台程序输出重定向到IDE两个例子 之一
- 如何利用触发器实现两个数据库间的同步
- Android实现乘法小例子(两个Activity)
- 转:收集两个关于xml和xsl的例子。
- Thread两个例子
- 两个简单例子揭示makefile中“=”和“:=”的区别
- 一个简单MySQL触发器例子