觸發器原理:
觸發器與儲存過程非常相似,觸發器也是sql語句集,兩者唯一的區別是觸發器不能用execute語句呼叫,而是在使用者執行transact-sql語句時自動觸發(啟用)執行。觸發器是在乙個修改了指定表中的資料時執行的儲存過程。通常通過建立觸發器來強制實現不同表中的邏輯相關資料的引用完整性和一致性。由於使用者不能繞過觸發器,所以可以用它來強制實施複雜的業務規則,以確保資料的完整性。觸發器不同於儲存過程,觸發器主要是通過事件執行觸發而被執行的,而儲存過程可以通過儲存過程名稱名字而直接呼叫。當對某一表進行諸如update、insert、delete這些操作時,sqlserver就會自動執行觸發器所定義的sql語句,從而確保對資料的處理必須符合這些sql語句所定義的規則。
觸發器的作用:
觸發器的主要作用是其能夠實現由主鍵和外來鍵所不能保證的複雜的參照完整性和資料的一致性。它能夠對資料庫中的相關表進行級聯修改,強制比check約束更複雜的資料完整性,並自定義操作訊息,維護非規範化資料以及比較資料修改前後的狀態。與check約束不同,觸發器可以引用其它表中的列。在下列情況下使用觸發器實現複雜的引用完整性;強制資料間的完整性。建立多行觸發器,當插入,更新、刪除多行資料時,必須編寫乙個處理多行資料的觸發器。執行級聯更新或級聯刪除這樣的動作。級聯修改資料庫中所有相關表。撤銷或者回滾違反引用完整性的操作,防止非法修改資料。
觸發器與儲存過程的區別:
觸發器與儲存過程的主要區別在於觸發器的執行方式。儲存過程必須有使用者、應用程式或者觸發器來顯示的呼叫並執行,而觸發器是當特定時間出現的時候,自動執行或者啟用的,與連線用資料庫中的使用者、或者應用程式無關。當一行被插入、更新或者刪除時觸發器才執行,同時還取決於觸發器是怎樣建立的,當update發生時使用乙個更新觸發器,當insert發生時使用乙個插入觸發器,當delete發生時使用乙個刪除觸發器。
觸發器與儲存過程的區別
觸發器原理 觸發器與儲存過程非常相似,觸發器也是sql語句集,兩者唯一的區別是觸發器不能用execute語句呼叫,而是在使用者執行transact sql語句時自動觸發 啟用 執行。觸發器是在乙個修改了指定表中的資料時執行的儲存過程。通常通過建立觸發器來強制實現不同表中的邏輯相關資料的引用完整性和一...
觸發器,儲存過程,函式區別
觸發器是特殊的儲存過程,儲存過程需要程式呼叫,而觸發器會自動執行 你所說的函式是自定義函式吧,函式是根據輸入產生輸出,自定義只不過輸入輸出的關係由使用者來定義。在什麼時候用觸發器?要求系統根據某些操作自動完成相關任務,比如,根據買掉的產品的輸入數量自動扣除該產品的庫存量。什麼時候用儲存過程?儲存過程...
儲存過程與觸發器的含義及區別
儲存過程 是 sql 語句和可選控制流語句的預編譯集合,以乙個名稱儲存並作為乙個單元處理。儲存過程儲存在資料庫內,可由應用程式通過乙個呼叫執行,而且允許使用者宣告變數 有條件執行以及其它強大的程式設計功能。儲存過程可包含程式流 邏輯以及對資料庫的查詢。它們可以接受引數 輸出引數 返回單個或多個結果集...