[SQL]觸發器入門介紹——特殊的預存程序,sql觸發器
觸發器是一種特殊類型的預存程序,它的功能是在指定的表中的資料發生變化時自動生效。
觸發器與普通預存程序的不同之處在於——觸發器的執行時由事件觸發,而普通預存程序是由命令調用執行(EXEC)
SQL Server主要提供了一下兩種觸發器
1)DML觸發器
2)DLL觸發器
當資料庫中發生資料操作語言DML事件的時候即執行DML觸發器。DLL觸發器是SQL Server 2005以後新增的觸發器類型,它在響應資料定義語言 (Data Definition Language)DDL時觸發。
主要講解DML觸發器,又分為三種:
1)AFTER觸發器,故名思義,為修改資料時觸發的
2)INSTEAD of觸發器 執行INSTEAD OF觸發器代替通常的觸發動作。
3)CLR觸發器,他就是萬金油,到處都算他的,AFTER 、INSTEAD OF,甚至有一些DLL觸發器也算在他裡面了,設計者當初為啥這樣設計就不得而知了。
是INSTEAD OF觸發器和AFTER觸發器的功能比較
sql視圖 預存程序 觸發器各自的優點是什?
視圖的優點:
提高資料安全性,可以不讓使用者看到表中的某個欄位。比如password,你只給他們執行視圖的許可權,不給執行表的許可權,他們就無法查看全部資料。
還有可以建立一個視圖,內容包括兩個表,更新的時候只需要指定ID,而不用管它來自哪個表,對應表中的資料就會自動更新。
預存程序的優點:
包括視圖的所有優點,還可以讓不懂資料庫的人也能也用資料庫,還有就是方便程式計設,比如我負責前景程式設計,你負責寫存程,我不用管你是怎麼寫,最後只接調用,我們分工明確,我也不需要懂你所懂的,這為用不懂語言和不同專業的人在一起合作提供了良好的平台。提高開發效率。
觸發器的優點:
保證資料的正確性和邏輯,比如訂單表中新增一條資料,對應在庫存表中會減少一個產品一樣。
還有保證資料的安全性,比如當使用者刪除表A,我們可以判斷他是否為Admin組的使用者,如果不是,就會給出錯誤的提示,並將交易回復。
我知道的就這麼多了。。。嘿嘿。
助 SQL 預存程序中觸發器語句詳解
樓上的二位都是高人,指點的太簡單!