淺入淺出SQL Server 觸發器

曹祥銘-Charles發表於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 caId=@caId)
		--刪除新聞
	    delete news where caId =@caId
		--刪除類別
		delete category where id=@caId--此處填寫觸發器要執行的SQL語句(比如,查詢剛剛執行刪除的內容)

	  END --結束 

相關文章