目錄
什麼是觸發器(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觸發器的語法
5.after 觸發器的語法--建立.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--
--建立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 時就會啟...