關於我對觸發器的認識

2021-10-06 07:19:23 字數 1803 閱讀 8837

目錄

什麼是觸發器(trigger)?

觸發器是一種專用型別的儲存過程,它被**到sql server 的**或者檢視上。它不是通過手工進行啟動的,也不是通過程式呼叫,而是通過對**資訊的處理(如insert,update,delete)來觸發才會執行的。觸發器它可以查詢其它表,可以包含sql語句。

觸發器的種類?

有instead-of和after兩種觸發器。

instead of觸發器可以實現更新檢視時多個資料表一起更新的問題。

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

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

觸發器的作用?

觸發器可以強化約束,來維護資料的完整性和一致性,可以跟蹤資料庫內的操作從而不允許未經許可的更新和變化。

4.instead-of觸發器的語法

--建立.instead-of觸發器--

gocreate

trigger tgr_insteadof

on table_a

instead of

update

--設定instead_of觸發器在進行執行update操作時觸發也可設定為insert,delete--

as--定義變數

declare

@oldtypeid

intdeclare

@newtypeid

int--從兩張表或獲取資料

select

@oldtypeid

=typeid from deleted --oldtypeid為更新前的舊資料--

select

@newtypeid

=typeid from inserted --newtypeid為更新後的新資料--

--執行操作

update booktype set nums = nums-

1where id=

@oldtypeid

--書籍種類數量-1--

update booktype set nums = nums+

1where id=

@newtypeid

--書籍種類數量+1--

5.after 觸發器的語法

--建立after觸發器--

gocreate

trigger tgr_name --觸發器名稱--

on table_a

forinsert

--設定觸發器為insert,也可以設定為delete,update--

asdeclare

@typeid

int--定義變數

select

@typeid

=typeid from inserted --從插入表獲取資料

update booktype set nums = nums+

1where id=

@typeid

--更新booktype表

對觸發器的認識

對觸發器的認識 解答 觸發器是表上的程式,主要提供資料新增 修改與刪除後的程式處理方法,可以用來檢查資料及進行資料更新,也可以分擔一些前端應用程式撰寫的邏輯規則。用場景 觸發器可以查詢其他表,而且可以包含複雜的sql語句。它們主要用於強制複雜的業務規則或要求。觸發器的主要應用場合概括起來講有以下幾種...

觸發器的認識

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

觸發器的認識

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