觸發器是一種特殊的儲存過程,它在插入,刪除或修改特定表中的資料時觸發執行.
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,insertas
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
asinsert 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
注意:觸發器名稱定義不能使用"-",但可以使用"_".
sybase 基本語法,儲存過程,觸發器
最近2天用了一下sybase,總結一下sybase儲存過程和觸發器的一些基本特點。sybase據說在12.xx以後支援自定義function了,但是在adaptive server enterprice版本中似乎不行,但是函式可以通過儲存過程來實現,因為儲存過程也是有返回值的 儲存過程 sybase...
觸發器學習
觸發器學習 查詢觸發器 select table owner,table name,trigger body from user triggers 刪除觸發器 drop trigger trigger name 但觸發器一般是這樣建的 create or replace 也就是如果存在的話,就可以替...
觸發器學習
1 觸發器概念 2 觸發器與儲存過程的唯一區別是觸發器不能執行execute語句呼叫,觸發器為自動觸發。2 建立簡單觸發器 create trigger dbo aa on dbo aaaa for insert delete,update astruncate table bbbb insert ...