觸發器使用

2022-02-23 01:34:25 字數 2076 閱讀 5302

觸發器是一種特殊的儲存過程,她不能被顯示的呼叫,而是在對錶增刪改操作後被啟用。所以可以用觸發器對來實施複雜的完整性約束。

after 觸發器和instead of 觸發器

sql server 2000 支援兩種型別的觸發器:after 觸發器和instead of 觸發器。其中after 觸發器即為sql server 2000 版本以前所介紹的觸發器。該型別觸發器要求只有執行某一操作(insert update delete) 之後,觸發器才被觸發,且只能在表上定義。可以為針對表的同一操作定義多個觸發器。對於after 觸發器,可以定義哪乙個觸發器被最先觸發,哪乙個被最後觸發,通常使用系統過程sp_settriggerorder 來完成此任務。

instead of 觸發器表示並不執行其所定義的操作(insert、 update、 delete),而僅是執行觸發器本身。既可在表上定義instead of 觸發器,也可以在檢視上定義instead of 觸發器,但對同一操作只能定義乙個instead of 觸發器。

觸發器的執行過程

如果乙個insert,update或delete語句違反了約束,那麼after觸發器不會被執行,因為對約束的檢查是在after觸發器執行之前發生的,所以after不能超越約束。

instead of觸發器可以取代激發她的操作來執行,她在inserted表和deleted 錶剛被建立,其他操作還未發生時執行,因為inserted of 在約束檢查前執行,所以可以對約束進行一些預處理。

建立觸發器語法

create 

trigger 

《觸發器名稱》

--觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.

--觸發器有執行的時間設定:可以設定為事件發生前或後。

--同樣也能設定觸發的事件:它們可以在執行insert、update或delete的過程中觸發。

on 《表名稱》

--觸發器是屬於某乙個表的:當在這個表上執行插入、 更新或刪除操作的時候就導致觸發器的啟用. 我們不能給同一張表的同乙個事件安排兩個觸發器。

for 

each 

row--觸發器的執行間隔:for each row子句通知觸發器 每隔一行執行一次動作,而不是對整個表執行一次。

《觸發器sql語句》

--觸發器包含所要觸發的sql語句:這裡的語句可以是任何合法的語句, 包括復合語句,但是這裡的語句受的限制和函式的一樣。

--你必須擁有相當大的許可權才能建立觸發器(create trigger),如果你已經是root使用者,那麼就足夠了。這跟sql的標準有所不同。

例項:

1

create

trigger

tri_creatproject2on

dbo.projectregister

3for

insert

/*插入觸發*/4

as5declare

@idint ,@name

varchar(20),@type

tinyint; /*

變數定義*/6

select

@id= id from inserted; /*

得到插入的資料id*/7

/*相關變數賦值*/8

set@id

=@id+'

40001'9

set@name='

專案部';10

set@type=1

;11insert

into supplier(id,name,[

type

]) values(@id,@name,@type); /*

觸發後插入另一張表

*/12

go

刪除觸發器

drop

trigger trigger_name

檢視已有觸發器

select

*from sysobjects where xtype ='tr

'

檢視乙個觸發器

exec sp_helptext '

trigger_name

'

mysql 觸發器 觸發器使用

1 了解什麼是觸發器?mysql 的觸發器和儲存過程一樣,都是嵌入到mysql的一段程式,觸發器 是由事件觸發某個動作,這些事件包括,插入 更新 刪除等語句。如果定義了觸發程式,觸發器就會觸發執行相應的操作。觸發器 trigger 是個特殊的儲存過程,不同的是,執行儲存過程要使用call語句來呼叫,...

oracle觸發器使用

size medium 語法規則 create or replace trigger 模式.觸發器名 before after insert delete update of 列名 on 表名 for each row when 條件 pl sql塊 說明 for each row的意義是 在一次操...

觸發器使用(1)

定義 何為觸發器?在sql server裡面也就是對某乙個表的一定的操作,觸發某種條件,從而執行的一段程式。觸發器是乙個特殊的儲存過程。常見的觸發器有三種 分別應用於insert update delete 事件。sql server 2000定義了新的觸發器,這裡不提 我為什麼要使用觸發器?比如,...