觸發器的小知識

2021-10-06 07:21:27 字數 1710 閱讀 7005

觸發器是一種專用型別的儲存過程,它被**到sql server 的**或者檢視上,或者說觸發器也是乙個特殊的儲存過程,主要是通過事件來觸發而被執行的

一:作用

1:它可以強化約束,來維護資料的完整性和一致性。

2:可以跟蹤資料庫內的操作從而不允許未經許可的更新和變化。

3:可以聯級運算。

4:能夠同步實時的複製表中的資料。

二:種類

觸發器主要分為兩個型別,分別是instead-of 與after。

1:instead-of 觸發器

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

2:after觸發器

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

1:首先我們準備兩個資料表,並填入一些資料

2:接下來用create trigger來建立觸發器,並設定觸發條件

go

alter trigger [dbo]

.[tri_delete1]

on [dbo].[

books

]for insert

as declare @typeid int

--修改分類表的庫存

select @typeid=typeid from deleted

update booktype

set nums=nums-

1where id=@typeid

3:執行相對應的語句

4:所建立過的觸發器在對應表的下面

觸發器有兩個特殊的表:

插入表(inserted表)和刪除表(deleted)

這兩張是邏輯表也是虛表,有系統在記憶體中建立者兩張表,不會儲存在資料庫中。而且兩張表的都是唯讀的,只能讀取資料而不能修改資料。這兩張表的結果總是與被改觸發器應用的表的結構相同。當觸發器完成工作後,這兩張表就會被刪除。

對錶的操作

inserted邏輯表

deleted邏輯表

增加記錄 (insert)

存放增加的記錄

無刪除記錄 (delete)

無存放被刪除的記錄

修改記錄 (update)

存放更新後的記錄

存放更新前的記錄

觸發器小例子!

insert 觸發器 create trigger tri infodetails i on info details after insert asdeclare id int begin delete from info details where id select id id from in...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

SQL觸發器小例子

在orders表上建立乙個觸發器叫bak order create trigger bak order on orders 觸發條件為 在該orders表上做insert操作後才出發 也可以在加上如drop update等 after insert asbgein 在上面的操作orders表的ins...