SYBASE触发器学习

触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行.

1、可以跟踪用户对数据库的操作
2、在修改或删除时级联修改或删除其它关联表中的匹配的行。
3、同步实时地复制表中的数据到另一个表中.

目前的项目中要求,对表的操作要保留日志,自然想到了用触发器。在使用sybase触发器的时候要用到两个临时表:deleted和inserted。在向数据库中插入记录的时候,会把记录也插向inserted中,在更新或者删除记录时,会把要删除的记录保存到deleted表中。这时候就可以根据需要从inserted和deleted表中取数据了。

一个是机构表:t_s_dept,一个是人员表:t_b_jcxx_ryxx,当修改机构信息时,dept_his表中保存修改前的记录;在修改人员信息时,ryxx_his中保存修改前的记录.

//机构触发器
create trigger trg_idu_dept
on t_s_dept
for delete,update,insert
as


insert into dept_his select id,dept_code,dept_name,dept_level,dept_manager,dept_lx,yybz,lxr,lxdh,addr,zxbz,glhbz,nbbh,tstamp,status from deleted
insert into dept_his select id,dept_code,dept_name,dept_level,dept_manager,dept_lx,yybz,lxr,lxdh,addr,zxbz,glhbz,nbbh,tstamp,status from inserted
//人员触发器
create trigger trg_idu_ryxx
on t_b_jcxx_ryxx
for delete,update,insert
as
insert into ryxx_his select id, per_card,per_name,per_code,per_xl,per_xz,per_rzk,dep_id,per_birth,per_xb,per_status,per_level,phone,byyx,zy,money_box,pzx_tag,tstamp,status from deleted
insert into ryxx_his select id,per_card,per_name,per_code,per_xl,per_xz,per_rzk,dep_id,per_birth,per_xb,per_status,per_level,phone,byyx,zy,money_box,pzx_tag,tstamp,status from inserted

 注意:触发器名称定义不能使用"-",但可以使用"_".

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值