SQL 觸發器 簡記

2021-10-11 02:52:42 字數 1368 閱讀 4226

觸發器使使用者定義在關係表上的一類由事件驅動的特殊過程,也是一種保證資料完整性的方法。

觸發器的主要作用是實現主鍵和外來鍵不能保證的複雜的參照完整性和資料一致性。其他功能:

觸發器分兩類(dml觸發器和ddl觸發器)

dml觸發器是發生資料操作語言時執行的觸發器,主要針對新增、修改、刪除進行觸發。

sql server 2008中,為dml觸發器定義了兩個特殊的表:

兩張表再資料庫伺服器記憶體中,是由系統管理的邏輯表,使用者只能讀取。觸發器完成工作後兩張表會從記憶體中刪除。

dml觸發器分兩類

建立觸發器需要指定以下幾項內容:

定義語句:

create

trigger

《觸發器名》

on

[with encryption] [

notfor

replication]as

sql語句

引數作用如下:

注釋:在mysql資料庫中,對於insert語句, 只有new是合法的;對於delete語句,只有old才合法;而update語句可以在

和new以及old同時使用。

insert觸發器在每次向基本表插入資料時,觸發執行,該資料同時複製到基本表和記憶體的inserted表中。insert觸發器主要有3個作用:

delete觸發器在從基本表中刪除資料時觸發執行,在使用者執行了delete觸發器後,sql server將刪除的資料行儲存在deleted表中,即資料行並沒有消失,還可以在sql語句中引用。

delete觸發器主要作用:

update觸發器合併了deleted觸發器和insert觸發器的作用。

使用者在執行update語句後,原來資料行從基本表中刪除,但儲存在deleted表中,同時基本表更新後的新資料行也在inserted表中儲存了乙個副本。

使用者可以利用deleted表和inserted表獲取前後的資料行,完成比較操作。

instead of觸發器為替代性操作觸發器,可用於檢視操作。

在用檢視修改基本表中的資料行時有可能導致失敗。

解決方法之一:對檢視建立instead of觸發器,通過觸發器插入所缺的列值完成更新。

定義語句:

alter

trigger

《觸發器名》

on

[with encryption] [

notfor

replication]as

sql語句

定義語句:

drop

trigger 觸發器名

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