1、存儲過程
是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱存儲並做爲一個單元處理。存儲過程存儲在數據庫內,可由應用程序經過一個調用執行,並且容許用戶聲明變量、有條件執行以及其它強大的編程功能。
存儲過程可包含程序流、邏輯以及對數據庫的查詢。它們能夠接受參數、輸出參數、返回單個或多個結果集以及返回值。
能夠出於任何使用 SQL 語句的目的來使用存儲過程,它具備如下優勢:
1.能夠在單個存儲過程當中執行一系列 SQL 語句。
2.能夠從本身的存儲過程內引用其它存儲過程,這能夠簡化一系列複雜語句。
3.存儲過程在建立時即在服務器上進行編譯,因此執行起來比單個 SQL 語句快。
2、觸發器
是一種特殊類型的存儲過程,當使用下面的一種或多種數據修改操做在指定表中對數據進行修改時,觸發器會生效:UPDATE、INSERT 或 DELETE。觸發器能夠查詢其它表,並且能夠包含複雜的 SQL 語句。它們主要用於強制複雜的業務規則或要求。例如,能夠控制是否容許基於顧客的當前賬戶狀態插入定單。
觸發器還有助於強制引用完整性,以便在添加、更新或刪除表中的行時保留表之間已定義的關係。然而,強制引用完整性的最好方法是在相關表中定義主鍵和外鍵約束。若是使用數據庫關係圖,則能夠在表之間建立關係以自動建立外鍵約束。有關詳細信息,請參見表關係。
觸發器的優勢以下:
數據庫