發(fā)布源:深圳維創(chuàng)信息技術發(fā)布時間:2020-09-16 瀏覽次數(shù): 次
觸發(fā)器主要用于維護數(shù)據(jù)庫中的完整性。
觸發(fā)器還用于實施業(yè)務規(guī)則,審核數(shù)據(jù)庫中的更改以及復制數(shù)據(jù)。
最常見的觸發(fā)器是在操作數(shù)據(jù)時觸發(fā)數(shù)據(jù)操作語言(DML)觸發(fā)器。
某些數(shù)據(jù)庫系統(tǒng)支持非數(shù)據(jù)觸發(fā)器,這些觸發(fā)器在發(fā)生數(shù)據(jù)定義語言(DDL)事件時觸發(fā)。
這些觸發(fā)器可以特別用于審計。
Oracle數(shù)據(jù)庫系統(tǒng)支持模式級觸發(fā)器什么是存儲過程?存儲過程是可以由訪問關系數(shù)據(jù)庫的應用程序。
通常,存儲過程用作驗證數(shù)據(jù)和控制對數(shù)據(jù)庫的訪問。
如果某些數(shù)據(jù)處理操作需要執(zhí)行多個SQL語句,則此類操作將作為存儲過程實現(xiàn)。
調用存儲過程時,必須使用CALL或EXECUTE語句。
存儲過程可以返回結果(例如SELECT語句的結果)。
這些結果可以由其他存儲過程或應用程序使用。
用于編寫存儲過程的語言通常支持控制結構,例如if,while,for等。
根據(jù)所使用的數(shù)據(jù)庫系統(tǒng),可以使用多種語言來實現(xiàn)存儲過程存儲過程和觸發(fā)器的區(qū)別(1)存儲過程是一組已創(chuàng)建并存儲在數(shù)據(jù)庫中的SQL語句。
所以我們可以一遍又一遍地重用代碼。
而觸發(fā)器是一種特殊的不是由用戶直接調用存儲過程,創(chuàng)建觸發(fā)器時,會定義在針對特定表或列進行特定類型的數(shù)據(jù)修改時觸發(fā)。
(2)用戶可以使用Execute或Exec語句來直接調用或執(zhí)行存儲過程,而無法直接調用或執(zhí)行觸發(fā)器。
觸發(fā)相關事件時,只會自動執(zhí)行觸發(fā)器。
(3)存儲過程可以采用輸入參數(shù),而觸發(fā)器中不能將參數(shù)作為輸入我們不能將參數(shù)作為輸入傳遞給觸發(fā)器。
(4)存儲過程可以返回零或n值,觸發(fā)器無法返回值。
(5)我們可以在存儲過程中使用事務,觸發(fā)器內不允許進行事務處理(6)存儲過程通常用于執(zhí)行用戶指定的任務,觸發(fā)器通常用于審計工作
Copyright © 2021 深圳市維創(chuàng)信息技術有限公司 版權所有