SYBASE觸發器學習

2021-05-25 03:14:01 字數 1344 閱讀 4901

觸發器是一種特殊的儲存過程,它在插入,刪除或修改特定表中的資料時觸發執行.

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 ...