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


1、AFTER(for)觸發器 (操作后)

after觸發器是指在操作成功后,所采取的一些動作!

比如:下面是我創建好的一個after觸發器

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

 

2、instead of 觸發器

對數據的操作只是一個“導火索”而已,真正起作用的是觸發器里面的動作;往往這種觸發器會有很多分支判斷語句在里面,根據不用的條件做不同的動作!

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

真正起作用的是觸發器里面的動作,接下來是對應觸發器的代碼

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觸發器,真正起作用的是觸發器里面的動作!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM