SQL的觸發器

2021-08-30 17:56:03 字數 1166 閱讀 8036

觸發器的概念:

觸發器(trigger)是sql server 提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作( insert,delete, update)時就會啟用它執行。

個人理解

顧名思義,觸發器就是由特定事件觸發的儲存過程,也就是它的執行只有程式滿足特定條件的時候,它才會觸發!

由此我們也能看出它和儲存過程的唯一區別就是,它不能手動觸發(不能執行execute語句呼叫)!

它一般適用於互相聯絡的資料表操作,比如你在修改語文成績的時候,你的總成績就會修改,這個時候用到觸發器就很方便!

自動性。只要觸發條件滿足,立刻被啟用。

多層修改。它可以通過**對主外來鍵聯絡,對**進行多表修改

強制限制。這些限制比用check約束所定義的更複雜。與check約束不同的是,觸發器可以引用其他表中的列。

我們常用的sql server資料庫,如果許可權不夠的話,你會發現**下的新建觸發器是灰色的!

那麼我就需要用到觸發器的建立語法,通過新建查詢建立了!

create

trigger trigger_name --觸發器的名字

on --觸發器作用的**

[ insert, update,delete ] --觸發器作用的觸發條件

asbegin

sql_statement --觸發器的操作內容

end

注:

在這裡我們需要注意的就是,我們在設定觸發條件的時候,一定要注意,是(for | after | instead of),因為觸發器一般涉及多個**,它們之間的主外來鍵聯絡會影響對你資料庫的操作!

任何事物都有兩面性,觸發器也不例外!

它會使資料邏輯變得複雜。

**存放在資料庫,資料操作不夠明顯,不易修改。

很多觸發器中的**可以被b層(邏輯)**所取代。

理解建立在自己已經學到的知識之上(n+1原則)!

sql 觸發器 直接遞迴觸發器

create trigger dbo loving20000 on dbo s for delete asdeclare age int select age sage from deleted delete s where sage age delete from s where sname xq...

sql 觸發器 儲存過程 觸發器(3 3)

1 what?什麼是觸發器 trigger 前兩篇介紹了儲存過程,儲存過程可以理解為sql語句集。那麼觸發器就是一種特殊的儲存過程,也就是一群特殊的sql語句集。特殊在哪?從上文得知,儲存過程是依賴名字才被呼叫的。不僅是儲存過程,我們常用的方法等,大部分也是先知道名字,才能去使用。就像吃飯採用訂外賣...

SQL之觸發器

觸發器是一種不帶引數特殊的儲存過程,有使用者定義,資料庫系統根據一定的條件自動執行 sql觸發器大體上可以分為4種 insert 觸發器 在對錶進行資料錄入的時候觸發 delete 觸發器 刪除表中的資料的時候觸發 instead of 觸發器 此類觸發器建立在檢視之上,用來替代相應的動作,比如de...