sqlserver 觸發器(語法描述)

2022-07-27 21:24:16 字數 1244 閱讀 7531

觸發器的定義:(建立在表上的觸發器的邏輯表(虛表)和原表的表結構一致)

觸發器對錶進行插入、更新、刪除的時候會自動執行的特殊儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。

觸發器是當對某乙個表進行操作。

觸發器的分類:

(1)dml觸發器:是指觸發器在資料庫中發生資料操作語言(dml)事件時將啟用。dml事件即指在表或檢視中修改資料的insert、update

、delete語句。

(2)ddl觸發器:是指當伺服器或資料庫中發生資料定義語言(ddl)事件時將啟用。ddl事件即指在表或索引中的create、alter

、drop語句。

(3)登陸觸發器:是指當使用者登入sql server例項建立會話時觸發。

dml觸發器分為:

(1)after觸發器和for觸發器一樣 操作

之後觸發

insert觸發器 update觸發器 delete觸發器(after觸發器要求只有執行某一操作insert、update、delete之後觸發器才被觸發,且只能定義在表上)

(2)instead of 觸發器        

操作之前觸發

instead of 觸發器表示並不執行其定義的操作(insert、update、delete)而僅執行觸發器本身。既可以在表上定義instead of 觸發器,也可以在檢視上定義。

具體操作:

觸發器有兩個特殊的表:插入表(instered表)和刪除表(deleted表)。

這兩張是邏輯表也是虛表。

有系統在記憶體中建立者兩張表,不會儲存在資料庫中。而且兩張表的都是唯讀的,只能讀取資料而不能修改資料。這兩張表的結果總是與被改觸發器應用的表的結構相同。

當觸發器完成工作後,這兩張表就會被刪除。 inserted表的資料是插入或是修改後的資料,而deleted表的資料是更新前的或是刪除的資料。

update資料的時候就是先刪除表記錄,然後增加一條記錄。這樣在inserted和deleted表就都有update後的資料記錄了。

注意的是:觸發器本身就是乙個事務,所以在觸發器裡面可以對修改資料進行一些特殊的檢查。如果不滿足可以利用事務回滾,撤銷操作。

觸發器語法

建立觸發器的語法如下所示 create trigger trigger name on table orview name with encryption execute as not for replication as sql statements external name assembly ...

sqlserver觸發器複習

create table a a1 int,a2 int create table b b1 int,b2 int insert into a values 1,0 insert into b values 1,0 create trigger tri update a2 a on a for up...

SQL server 之 觸發器

今天對觸發器研究了一下,之前的學習感覺挺朦朧的,今天鼓搗了一天,算是有了一點點了解,把學習的體會記錄了下來。常見的觸發器 觸發器的作用 自動化操作,減少了手動操作以及出錯的機率 現實工作中用的比較少,因為想讓他執行起來效率高很難 一 dml觸發器 insert delete update 不支援se...