儲存過程與觸發器因為在資料庫中的作用不同,因為也就沒什麼效能可比性。
儲存過程(stored procedure)是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。
觸發器(trigger)是個特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作( insert,delete, update)時就會啟用它執行。觸發器經常用於加強資料的完整性約束和業務規則等。 觸發器可以從 dba_triggers,user_triggers 資料字典中查到。
儲存過程可以使得對資料庫的管理、以及顯示關於資料庫及其使用者資訊的工作容易得多。儲存過程是 sql 語句和可選控制流語句的預編譯集合,以乙個名稱儲存並作為乙個單元處理。儲存過程儲存在資料庫內,可由應用程式通過乙個呼叫執行,而且允許使用者宣告變數、有條件執行以及其它強大的程式設計功能。
儲存過程可包含程式流、邏輯以及對資料庫的查詢。它們可以接受引數、輸出引數、返回單個或多個結果集以及返回值。
可以出於任何使用 sql 語句的目的來使用儲存過程,它具有以下優點:
1、可以在單個儲存過程中執行一系列 sql 語句;
2、可以從自己的儲存過程內引用其它儲存過程,這可以簡化一系列複雜語句;
3、儲存過程在建立時即在伺服器上進行編譯,所以執行起來比單個 sql 語句快;
缺點:
後期資料庫的維護,不方便,應用程式的業務邏輯處理與資料操作耦合度高,不利於擴充套件與維護;
觸發器雖然也算一種儲存過程,但一般要靠insert,update,delete等操作的發生作為觸發事件才被呼叫;(建議盡量少用,出錯了不太好除錯)
觸發器 儲存過程
1 為productsales資料庫中的產品表建立乙個名為update pno的update觸發器,該觸發器的作用是禁止更新產品表中的 productname 欄位的內容。並用update語句修改產品表中第一條記錄為 1 hp1500 印表機 2000 要求顯示 不能修改產品名稱 的警告資訊。cre...
儲存過程 觸發器
觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名字而被直接呼叫。當對某一表進行諸如update insert delete 這些操作時,就會自動執行觸發器所定義的sql 語句,從而確保對資料的處理必須符合由這些sql 語句所定義的規則。觸發器的主要作用就是其能夠實現由主鍵和外來鍵...
SQL Server 儲存過程與觸發器
定義 是一組為了完成特點功能的sql語句集,經編譯後儲存在資料中。包含 程式流 邏輯 對資料庫的查詢 建立儲存過程 create procedure 名稱 assql statement n 在可程式設計性中可以找到 exec 名稱 呼叫儲存過程 recompile encryption 加密 定義...