SQL Server触发器简单例子
SQL Server觸發(fā)器
1.是什么?
觸發(fā)器是一種專用類型的存儲過程,它被捆綁到SQL Server 的表格或者視圖上。
2.有什么作用
觸發(fā)器是一個特殊的存儲過程,主要是通過事件來觸發(fā)而被執(zhí)行的。它可以強化約束,來維護數(shù)據(jù)的完整性和一致性,可以跟蹤數(shù)據(jù)庫內(nèi)的操作從而不允許未經(jīng)許可的更新和變化。可以聯(lián)級運算。如,某表上的觸發(fā)器上包含對另一個表的數(shù)據(jù)操作,而該操作又會導致該表觸發(fā)器被觸發(fā)。
3.有哪些類型的觸發(fā)器
有INSTEAD-OF和AFTER兩種觸發(fā)器。例如,如果有一個用于TableA的INSTEAD-OF-UPDATE觸發(fā)器,同時對這個表格執(zhí)行更新語句,那么INSTEAD-OF-UPDATE觸發(fā)器里的代碼會執(zhí)行,而不是執(zhí)行更新語句則不會執(zhí)行操作。AFTER觸發(fā)器要在DML語句在數(shù)據(jù)庫里使用之后才執(zhí)行。這些類型的觸發(fā)器對于監(jiān)視發(fā)生在數(shù)據(jù)庫表格里的數(shù)據(jù)變化十分好用。下面是一個簡單的實例。
DML(數(shù)據(jù)操作語言,Data Manipulation Language)觸發(fā)器
DML觸發(fā)器是一些附加在特定表或視圖上的操作代碼,當數(shù)據(jù)庫服務器中發(fā)生數(shù)據(jù)操作語言事件時執(zhí)行這些操作。SqlServer中的DML觸發(fā)器有三種:
insert觸發(fā)器:向表中插入數(shù)據(jù)時被觸發(fā);
update觸發(fā)器:修改表中數(shù)據(jù)時被觸發(fā);
delete觸發(fā)器:從表中刪除數(shù)據(jù)時被觸發(fā)。
DML觸發(fā)器執(zhí)行時,系統(tǒng)內(nèi)存會自動生成deleted表或inserted表,執(zhí)行結(jié)束會自動消失。
數(shù)據(jù)庫結(jié)構(gòu)
insert觸發(fā)器:向表中插入數(shù)據(jù)時被觸發(fā)
當我插入books表,觸發(fā)器幫我自動修改了BookTypes的Nums列,所以影響了兩行
delete觸發(fā)器:從表中刪除數(shù)據(jù)時被觸發(fā)
其他基本同上
update觸發(fā)器:修改表中數(shù)據(jù)時被觸發(fā)
當我修改了books表的TypeID時,觸發(fā)器幫我修改了對應的修改前后BookTypes對應的Nums列,所以影響了三行
總結(jié)
以上是生活随笔為你收集整理的SQL Server触发器简单例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java面试题!5年经验Java程序员面
- 下一篇: SQL触发器实例