淺入淺出SQL Server 觸發器
阿新 • • 發佈:2018-11-11
什麼是觸發器
簡單的來說,在SQL Server裡面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程式。觸發器是一個特殊的儲存過程。
觸發器的建立
常見的觸發器有三種,分別對應於Insert 、Update、Delete事件。
怎麼建立觸發器呢?在牛腩新聞釋出系統中,就需要建立觸發器,但是按照視訊的操作步驟,我的Sql Server不能直接建立觸發器。
當我右鍵觸發器的時候,我的新建觸發器的按鈕是灰色的!所以就只能用SQL語句來建立了!
1.點選需要建立觸發器的資料庫,新建查詢!
2.輸入以下程式碼、
(背景:在牛腩新聞釋出系統中,需要刪除新聞分類 category 表中的分類,但是這個表和新聞表還有評論表存在外來鍵,所以在刪除分類的時候會報錯!所以需要建立觸發器,在執行刪除新聞分類的時候,先刪除該新聞分類下的所有評論,還有該新聞下的所有新聞,然後最後刪除這個新聞類別!)
--Author(作者):曹*銘
--Create Date(時間):2018.11.10
--Description(名稱):
ALTER TRIGGER [dbo].[trigCategoryDelete] --觸發器名稱
on [dbo].[category] --選擇要建立觸發器的表
instead of DELETE --觸發條件 插入/刪除/更新(任選一個)
AS --伴隨
BEGIN --開始執行
declare @caId int --定義一個引數
select @caId=id from deleted --從已經刪除的臨時表中選出id等於這個引數的資料
--刪除評論
delete comment where newsId in(select newsId from news where [email protected])
--刪除新聞
delete news where caId [email protected]
--刪除類別
delete category where [email protected]此處填寫觸發器要執行的SQL語句(比如,查詢剛剛執行刪除的內容)
END --結束