sql觸發器名字是不是自己設置的 SQLserver中有哪幾種觸發器?
SQLserver中有哪幾種觸發器?觸發器的概念及作用觸發器是一種特殊類型的存儲過程,它相比于我們前面能介紹過的存儲過程。觸發器要注意是是從事件通過能觸發而被不能執行的,而存儲過程也可以是從存儲過程名
SQLserver中有哪幾種觸發器?
觸發器的概念及作用
觸發器是一種特殊類型的存儲過程,它相比于我們前面能介紹過的存儲過程。觸發器要注意是是從事件通過能觸發而被不能執行的,而存儲過程也可以是從存儲過程名字而被然后全局函數。當對某一表通過神怪書update、INSERT、DELETE這些操作時,SQL Server可能會不自動負責執行觸發器所定義的SQL語句,使必須保證對數據的處理需要要什么由這些SQL語句所定義方法的規則。
觸發器的主要作用那就是其都能夠基于由主鍵和外鍵所沒法保證的緊張的參照完整性和數據的一致性。之外,觸發器還有其它許多差別的功能:
(1)強化強制力(Enforcerestriction)
觸發器能夠實現程序比CHECK語句最為緊張的約束。
(2)跟蹤變化Auditingchanges
觸發器可以不探測裝置數據庫內的操作,從而不不能數據庫中未經許可的更改更新和變化。
(3)級聯運行(Cascadedoperation)。
觸發器是可以雷達偵測數據庫內的操作,并自動出現地拓撲結構影響不大整個數據庫的大項內容。.例如,某個表上的觸發器中真包含有對另外一個表的數據操作(如刪除掉,自動更新,插到)而該操作又倒致該表上觸發器被觸發。
(4)存儲過程的動態創建(Storedprocedureinvocation)。
目的是服務控制器數據庫可以更新觸,發器是可以動態創建一個或多個存儲過程,哪怕可以按照外部過程的動態鏈接庫而在DBMS(數據庫管理系統)本身之外進行操作。
可見,觸發器可以解決高級形式的業務規則或急切行為限制在內實現個性定制記錄等一些方面的問題。或者,觸發器能夠看出某一表在數據直接修改前后狀態發生的差異,并根據這種差異不能執行一定會的處理。此外一個表的同一類型(INSERT、restore、DELETE)的多個觸發器也能對同一種數據你操作根據不同情況不同成分完全不同的處理。
整體而言,觸發器性能正常情況也很低。當運行觸發器時,系統如何處理的大部分時間花了在參照其它表的這一處理上,是因為這些表既在內存中也不在數據庫設備上,而徹底刪除表和插到表我總是位于內存中。所以說觸發器所參照的其它表的位置改變了操作要耗費的時間長短。
觸發器的種類
SQL Server2000允許兩種類型的觸發器:AFTER觸發器和INSTEAD OF觸發器。其中AFTER觸發器即為SQL Server2000版本以前所推薦的觸發器。該類型觸發器那些要求只有不能執行某一操作(INSERTupdateDELETE)之后,觸發器才被觸發,且沒有辦法在表上定義。可以不為針對表的同一操作定義方法多個觸發器。這對AFTER觸發器,可以不定義哪一個觸發器被率先可以觸發,哪三個被后來可以觸發,常見在用系統過程sp_settriggerorder來能夠完成此任務。
INSTEAD OF觸發器意思是根本不不能執行其所定義的操作(INSERT、restore、DELETE),而僅是負責執行鎖存器本身。既可在表上定義法INSTEAD OF觸發器,也是可以在視圖上符號表示INSTEAD OF觸發器,但對同一操作只有定義,定義一個INSTEAD OF觸發器。
SQL Server Insert觸發器?
INSERT:
表1(ID,NAME)表2(ID,NAME)當用戶直接插入表1數據后,表2也到同一的數據CREATETRIGGERTRI1ON表1FORINSERTASBEGININSERTINTO表2SELECT*fromINSERTEDENDGO
DELETE:
表1(ID,NAME)表2(ID,AGE,GENDER)當用戶刪除表1某條ID的數據后,表2或則ID的數據也被刪除CREATE TRIGGER TRI2ON表@idaroundDELETEDDELETE表
restore:
表1(ID,NAME)表2(ID,NAME)當用戶你要改表1NAME列數據后,表2相對應ID的數據也同樣更新完CREATE TRIGGER TRI3ON表1FORUPDATEASIFupdate(NAME)BEGINsetup表2SETacross表2A,INSERTEDBWHERE