資料庫觸發器

2021-09-27 02:31:48 字數 1465 閱讀 8618

一、觸發器的定義:

觸發器(trigger)是由事件來觸發某個操作。這些事件包括insert語句、update語句和delete語句。當資料庫系統執行這些事件時,會啟用促發其執行相應的操作。

sql觸發器,是一種特殊型別的儲存過程,不由使用者直接呼叫。他可以查詢其它表,並可以包含複雜的transact-sql語句。將觸發器和觸發它的語句作為可在觸發器內回滾的單個事務對待。如果檢測到嚴重錯誤(例如,磁碟空間不足),則整個事務即自動回滾。常常用於強制業務規則和資料完整性。

二 、觸發器分類:

1、dml( 資料操縱語言 data manipulation language)觸發器:是指觸發器在資料庫中發生 dml 事件時將啟用。dml事件是指在表或檢視中對資料進行的 insert、update、delete 操作的語句。

2、ddl(資料定義語言 data definition language)觸發器:是指當伺服器或資料庫中發生 ddl 事件時將啟用。ddl事件是指在表或索引中的 create、alter、drop 操作語句。

3、登陸觸發器:是指當使用者登入 sql server 例項建立會話時觸發。如果身份驗證失敗,登入觸發器不會觸發。

insert型觸發器:插入某一行時啟用觸發器,通過 insert、load data、replace語句觸發;

update型觸發器:更改某一行時啟用觸發器,通過update語句觸發;

delete型觸發器:刪除某一行時啟用觸發器,通過delete、replace語句觸發。

三、建立與使用觸發器:

建立觸發器的語法:

create trigger trigger_name trigger_time trigger_event on tb_name foreach row trigger_stmt:

trigger_name:觸發器的名稱。

tirgger_time:觸發時機,為before或者after。

trigger_event:觸發事件,為insert、delete或者update。

tb_name:表示建立觸發器的表名,在哪張表上建立觸發器。

trigger_stmt:觸發器的程式體,可以是一條sql語句或者是用begin和end包含的多條語句。

for each row表示任何一條記錄上的操作滿足觸發事件都會觸發該觸發器。

建立有多個執行語句的觸發器:

create trigger 觸發器名 before|after 觸發事件 on 表名 foreach row

begin

執行語句

end四、檢視觸發器

4.1 showtriggers 語句檢視觸發器資訊

show triggers;

4.2 在 triggers 表中檢視觸發器資訊

drop trigger trig_book2 ;

建立資料庫觸發器步驟:

更深入了解:

資料庫觸發器

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

資料庫觸發器

最近做了個觸發器的例子 create trigger tru user on user for update asif update status begin update user set stopflag 1 from inserted where user.userid inserted.us...

資料庫 觸發器

觸發器的概念 是使用者定義在關係表上的一類有事件驅動的特殊過程。一旦定義,任何對錶的增刪改操作均有伺服器自動啟用相應的觸發器,在dbms核心層進行集中的完整性控制。類似於約束,但比約束更靈活。觸發器的分類 dml觸發器 dml data manipulation language 觸發器是當資料庫伺...