【SQL觸發器】類型 FOR 、AFTER、 Instead of

一、AFTER(for)觸發器 (操做後)

after觸發器是指在操做成功後,所採起的一些動做!spa

好比:下面是我建立好的一個after觸發器code

creat trigger [dbo].[T_CaregoryDelete] --觸發器的名字爲T_CaregoryDelete on [dbo].[caregory] --是caregory類別表的觸發器 
after delete --after表明執行刪除後執行as後邊的語句 

as 

begin 
delete news where caId=(select id from deleted) --激發觸發器後我要執行的動做,其中deleted是一個系統默認臨時表 

end

 

二、instead of 觸發器

對數據的操做只是一個「導火索」而已,真正起做用的是觸發器裏面的動做;每每這種觸發器會有不少分支判斷語句在裏面,根據不用的條件作不一樣的動做!

INSTEAD OF 觸發器用來代替一般的觸發動做,即當對錶進行INSERT、UPDATE 或 DELETE 操做時,系統不是直接對錶執行這些操做,而是把操做內容交給觸發器,讓觸發器檢查所進行的操做是否正確。如正確才進行相應的操做。所以,INSTEAD OF 觸發器的動做要早於表的約束處理。

真正起做用的是觸發器裏面的動做,接下來是對應觸發器的代碼blog

CREATE trigger [dbo].[T_CaregoryDelete] on [dbo].[caregory] 
instead of delete 
as 
begin 

delete news where caId=(select id from deleted) 
delete caregory where id=(select id from deleted) 

end

 

 

 

後記:

after觸發器是在操做成功後,所採起的一些動做
而對於instead of觸發器,真正起做用的是觸發器裏面的動做!class

相關文章
相關標籤/搜索