觸發器的定義:(建立在表上的觸發器的邏輯表(虛表)和原表的表結構一致)觸發器對錶進行插入、更新、刪除的時候會自動執行的特殊儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。
觸發器是當對某乙個表進行操作。
觸發器的分類:(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...