資料庫中的觸發器

2021-06-25 16:47:33 字數 1228 閱讀 9592

觸發器

其是一種特殊的儲存過程。一般的儲存過程是通過儲存過程名直接呼叫,而觸發器主要是

通過事件(增、刪、改)進行觸發而被執行的。其在表中資料發生變化時自動強制執行。

常見的觸發器有兩種:after(for)、instead of,用於insert、update、delete事件。

after(for)        表示執行**後,執行觸發器

instead of        表示執行**前,用已經寫好的觸發器代替你的操作

觸發器語法:

create trigger 觸發器的名字   on 操作表

for|after         instead of

update|insert|delete

assql語句

觸發器實現原理圖

觸發器示例

example1

--禁止使用者插入資料(實際上是先插入,然後立刻將其刪除!)

create trigger tr_insert on bank

for          --for表示執行之後的操作

insert       --即先執行了插入操作,同時在臨時表中儲存了插入記錄

as--執行完插入之後,在新生成的表中將剛剛插入的那條記錄刪除,

--而此時得到的剛剛插入的記錄的id是通過臨時表 inserted得到的

delete * from bank where cid=(select cid from inserted)

生成上面的觸發器後,當使用者再輸入insert語句後就見不到效果了!

如:insert into bank values('0004',10000),是插入不進資料庫的。

example2

--刪除誰就讓誰的賬戶加上10元

create trigger tr_dalete on bank

instead of

delete

asupdate bank balance=balance+10 where cid=(select cid from deleted)

生成這個觸發器之後,當使用者輸入delete語句後,對應的那個id不但沒有被刪除掉,而且他的賬戶增加了10元

如:delete from bank where cid='0002',執行完這句話後,編號為0002的賬戶會增加10元

資料庫中的觸發器

在進行資料庫應用軟體的開發時,我們有時會碰到表中的某些資料改變,希望同時引起其他相關資料改變的需求,利用觸發器就能滿足這樣的需求。它能在表中的某些特定資料變化時自動完成某些查詢。運用觸發器不僅可以簡化程式,而且可以增加程式的靈活性。下面就對觸發器的基本概念 它的應用場合進行一下簡單的敘述。觸發器是一...

資料庫中的觸發器

它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如 當對乙個表進行操作 insert,delete,update 時就會啟用它執行。觸發器經常用於加強資料的完整性約束和業務規則等。觸發器的型別 觸發器分為語句級觸發器和行級觸發器 for each row 1 語句級觸發器 是指在指定的操...

資料庫觸發器

觸發器是一種特殊型別的儲存過程,它不同於我們前面介紹過的儲存過程。觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名字而 被直接呼叫。當對某一表進行諸如update insert delete 這些操作時,sql server 就會自動執行觸發器所定義的sql 語句,從而確保對資料...