觸發器有兩個穩態,可分別表示二進制數碼0和1,無外觸發時可維持穩態;外觸發下,兩個穩態可相互轉換,已轉換的穩定狀態可長期保持下來,這使得觸發器能夠記憶二進位訊息,常用作二進位儲存單元。
本教學操作環境:windows7系統、SQL Server2016版、Dell G3電腦。
觸發器(trigger)是SQL server提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與資料表事件相關的特殊的預存過程,它的執行不是由程式調用,也不是手動啟動,而是由事件來觸發,例如當對一個表進行操作(insert,delete,update)時就會激活它執行。觸發器經常用於加強資料的完整性約束和業務規則等。
觸發器作用
1、在寫入資料表前,強制檢驗或轉換資料。
2、觸發器發生錯誤時,異動的結果會被撤銷。
3、部分資料庫管理系統可以針對資料定義語言(DDL)使用觸發器,稱為DDL觸發器。
4、可依特定的情況,取代異動的指令(INSTEADOF)。
觸發器分類
1、ML觸發器
#當資料庫中表中的資料發生變化時,包括insert,update,delete任意操作,如果我們對該表寫了對應的DML觸發器,那麼該觸發器會自動執行。 DML觸發器的主要作用在於強制執行業務規則,以及擴充SqlServer約束,預設值等。因為我們知道約束只能約束同一個表中的數據,而觸發器中則可以執行任意Sql指令。
2、DDL觸發器
它是SqlServer2005新增的觸發器,主要用於審核與規範對資料庫中表,觸發器,視圖等結構上的操作。例如在修改表,修改列,新增表,新增列等。它在資料庫結構發生變化時執行,我們主要用它來記錄資料庫的修改過程,以及限製程式設計師對資料庫的修改,例如不允許刪除某些指定表等。
3、登入觸發器
登入觸發器將為回應LOGIN事件而激發預存程序。與SQLServer實例建立使用者會話時將引發此事件。登入觸發器將在登入的身份驗證階段完成之後且使用者會話實際建立之前激發。因此,來自觸發器內部且通常將到達使用者的所有訊息(例如錯誤訊息和來自PRINT語句的訊息)會傳送到SQLServer錯誤日誌。如果身份驗證失敗,將不會激發登入觸發器。
觸發器優點
觸發器可透過資料庫中的相關表實現級聯更改,不過,透過級聯參考完整性約束可以更有效地執行這些變更。觸發器可以強制用比CHECK約束定義的約束更為複雜的約束。與CHECK約束不同,觸發器可以引用其它表中的列。例如,觸發器可以使用另一個表中的SELECT來比較插入或更新的數據,以及執行其它操作,例如修改數據或顯示使用者定義錯誤訊息。觸發器也可以評估資料修改前後的表狀態,並根據其差異採取對策。一個表中的多個同類觸發器(INSERT、UPDATE或DELETE)允許採取多個不同的對策以回應同一個修改語句。
觸發器的穩態
(1)觸發器有兩個穩態,可分別表示二進制數碼0和1,無外觸發時可維持穩態;
(2)外觸發下,兩個穩態可相互轉換(稱翻轉),已轉換的穩定狀態可長期保持下來,這就使得觸發器能夠記憶二進制信息,常用作二進制儲存單元。
更多程式相關知識,請造訪:程式設計教學! !
以上是一個觸發器有幾個穩態的詳細內容。更多資訊請關注PHP中文網其他相關文章!