SQL的觸發器解析

2021-12-30 06:09:32 字數 1097 閱讀 8312

觸發器的概念:

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

個人理解

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

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

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

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

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

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

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

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

create trigger trigger_name --觸發器的名字

on --觸發器作用的**

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

as begin

sql_statement --觸發器的操作內容

end注:

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

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

它會使資料邏輯變得複雜。 **存放在資料庫,資料操作不夠明顯,不易修改。 很多觸發器中的**可以被b層(邏輯)**所取代。

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

SQL的觸發器

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

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...

Mysql觸發器解析

由於業務需要,所以需要通過觸發器來實現,剛剛開始使用觸發器,遇到了一些坑,希望和我一樣的初始者能避開。create trigger trigger alarm month after insert on t alarm month stat for each row begin if disable...