sql 觸發器 儲存過程 觸發器(3 3)

2021-07-03 18:47:41 字數 1467 閱讀 1219

1、what?

什麼是觸發器(trigger)?

前兩篇介紹了儲存過程,儲存過程可以理解為sql語句集。那麼觸發器就是一種特殊的儲存過程,也就是一群特殊的sql語句集。

特殊在哪?

從上文得知,儲存過程是依賴名字才被呼叫的。不僅是儲存過程,我們常用的方法等,大部分也是先知道名字,才能去使用。就像吃飯採用訂外賣的形式,總要知道餐廳的名字才能下訂單。

觸發器被呼叫卻不用依賴名字。

還是吃飯這個行為,天天訂外賣,只有一家餐廳特別符合胃口,固定這家餐廳。一到吃飯時,就直接下單了。

觸發器就是個固定餐廳的訂單。它固定了一些資料庫操作的行為,只要一觸發事件,就能被驅動。

2、why?

為什麼要用觸發器?

資料庫操作無非增刪改查,觸發器主要作用於insert、delete、update(和create、drop、alter:ddl語言,暫且不講)。

當指定表發生此類操作時,自動啟用(所以是事件驅動)。根據執行的操作不同,又可分為兩類。

1)after觸發器

當發生insert、delete、update之後,該觸發器執行封裝好的操作。

2)instead of觸發器

當發生insert、delete、update時,該觸發器執行替代操作,不執行insert、delete、update,而是執行封裝好的操作

3、how?

建立觸發器示例:

create trigger trigcategorydelete

on category

instead of delete --替代觸發器

as begin

---- 先刪除該類別下的所有新聞,再刪除該新聞類別

declare @id int

select @id = id from deleted

delete news where caid =@id

delete category where id = @id

end

SQL儲存過程 觸發器

儲存過程 由使用者使用create procedure語句在當前資料庫中建立 資料庫所有者擁有使用create procedure語句的預設許可權 語法 create proc edure procedure name 建立儲存過程示例 無引數 create procedure titles 138...

觸發器 儲存過程

1 為productsales資料庫中的產品表建立乙個名為update pno的update觸發器,該觸發器的作用是禁止更新產品表中的 productname 欄位的內容。並用update語句修改產品表中第一條記錄為 1 hp1500 印表機 2000 要求顯示 不能修改產品名稱 的警告資訊。cre...

儲存過程 觸發器

觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名字而被直接呼叫。當對某一表進行諸如update insert delete 這些操作時,就會自動執行觸發器所定義的sql 語句,從而確保對資料的處理必須符合由這些sql 語句所定義的規則。觸發器的主要作用就是其能夠實現由主鍵和外來鍵...