什麼是觸發器?
觸發器是一種特殊的存儲過程,SQL Server 的表格或者視圖上。
SQL Server 有什麼不同類型的觸發器?
有INSTEAD-OF和AFTER兩種觸發器。AFTER觸發器要語句在數據庫裏使用之後才執行。這些類型的觸發器對於監視發生在數據庫表格裏的數據變化十分好用。
存儲過程和觸發器的區別?
觸發器與存儲過程的主要區別在於觸發器的運行方式。存儲過程要有用戶、程序或者觸發器來顯示的調用並執行,而觸發器是出現的時候,自動執行或者激活的。
刪除之後數據庫自動給從表刪減數據
修改之後更新主表和從表數據,維護數據唯一性
創建after觸發器
after觸發器是在對錶進行操作之後觸發的。創建新增觸發器語句
需求:在新增書籍的時候,對應的類型表數據要更新
–創建觸發器語法
–create trigger 觸發器名稱
– on 表名
– for 操作
–as 需要執行的sql語句
create trigger tgr_bookInsert
on [dbo].[Books]
for insert
as
–定義變量,存儲新增書籍的類型ID
declare @typeID int
–定義變量存儲書籍類型的數量
declare @typeNums int
–找到存儲新增書籍的類型ID
select @typeID=typeID from inserted
–計算出對應書籍類型的數量
select @typeNums=count(*) from [dbo].[Books] where typeID=@typeID
–更新BookTypes表
update [dbo].[BookTypes] set Nums=@typeNums
手動新增一個書籍分類,並且Nums爲0
然後新增一本書
這個時候書籍分類的數量就會自動更新