淺入淺出SQL Server 觸發器
什麼是觸發器
簡單的來說,在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 --結束
相關文章
- sql-server觸發器SQLServer觸發器
- SQL Server:觸發器詳解SQLServer觸發器
- SQL Server 觸發器詳情HOPPSQLServer觸發器
- 淺入淺出webpackWeb
- 瞭解SQL Server觸發器及觸發器中的事務AWSQLServer觸發器
- 淺入淺出 MySQL 索引MySql索引
- 淺入淺出圖解domDIff圖解
- 『淺入淺出』MySQL 和 InnoDBMySql
- 《淺入淺出MySQL》表鎖 行鎖 併發插入MySql
- 原始碼淺入淺出 Java ConcurrentHashMap原始碼JavaHashMap
- Es6 generator淺入淺出
- 淺談SQL Server中的快照問題SQLServer
- SQL Server實戰五:儲存過程與觸發器SQLServer儲存過程觸發器
- 深入淺出 Server-sent events 技術Server
- Spring淺入淺出——不吹牛逼不裝逼Spring
- 淺入深出Vue:路由Vue路由
- 淺入深出Vue:元件Vue元件
- SQL Server索引查詢/掃描沒有出現key lookup的案例淺析SQLServer索引
- 淺入深出Vue:註冊Vue
- Spring註解淺入淺出——不吹牛逼不裝逼Spring
- 淺談sql索引SQL索引
- SQL Server中datetimeset轉換datetime型別問題淺析SQLServer型別
- 淺入深出Vue:釋出專案Vue
- 淺讀-《深入淺出Nodejs》NodeJS
- 機器學習深入淺出機器學習
- 深入淺出FE(十四)深入淺出websocketWeb
- Java 註解 (Annotation)淺入深出Java
- 淺入深出的微前端MicroApp前端APP
- 淺入深出Vue:事件處理Vue事件
- 淺入深出Vue:資料渲染Vue
- SQL觸發器例項講解SQL觸發器
- 深入淺出,ARCore開發原理
- 重新學習Mysql資料庫2:『淺入淺出』MySQL 和 InnoDBMySql資料庫
- 深入淺出瀏覽器渲染原理瀏覽器
- 深入淺出Lua虛擬機器虛擬機
- 淺入 AutoMapperAPP
- 淺入深出Vue:自動化路由Vue路由
- 淺入深出Vue:資料繫結Vue