更新時間:2021-06-21 18:16:47作者:admin2
存儲過程就是一個sql的程序集 可以包含多個SQL語句 并可以附帶各種邏輯判斷及處理觸發器 就類似于程序里的事件觸發只是這里通常是某個字段的改變 某個表插入了數據 或者刪除某些數據 以上這些處理引發的另外一些表數據的改變
所謂存儲過程,是一組預編譯的Transact-SQL語句,存儲在SQL Server中,被作為一種數據庫對象保存起來。存儲過程的執行不是在客戶端而是在服務器端(執行速度快)。存儲過程可以是一條簡單的Transact-SQL語句,也可以是復雜的Transact-SQL語句和流程控制語句的集合。在使用Transact-SQL語言編程的過程中,我們可以將某些需要多次調用的實現某個特定任務的代碼段編寫成一個過程,將其保存在數據庫中,并由SQL Server服務器通過過程名來調用它們,這些過程就叫做存儲過程(也稱為子程序)。 存儲過程在第一次執行時進行語法檢查和編譯,編譯好的版本存儲在高速緩存中,用于后續調用,下次調用時可以直接執行。存儲過程的特點: 存儲過程可以接受輸入參數,并且可以用輸出參數的形式返回值。存儲過程可以包含復雜的流控制語句。 存儲過程建立好以后可以被反復調用。一個存儲過程可以調用另一個存儲過程,嵌套調用可多達32級。 由于存儲過程在建立和第一次執行的時候被解析、優化、編譯和緩存(駐留在高速緩沖存儲器中),因此其執行速度比直接向SQL Server發送T-SQL語句快。 存儲過程的執行是通過一條語句來完成的,避免了網絡上服務器和客戶機之間大量Transact-SQL語句的傳送,降低了網絡的通信量。 存儲過程可以被看作一種安全機制,即使用戶沒有對表或視圖的訪問權限,他們也可以被授予執行對表或視圖進行訪問的存儲過程的權限。、、、、、、、、、、、、、、、、、、、、、、、、、、、觸發器的作用 在指定的表中數據發生變化時被調用以響應INSERT、UPDATE或DELETE事件。 用于保護表中的數據,當有操作影響到觸發器保護的數據時,觸發器自動強制執行業務規則。 利用觸發器可以方便地實現數據庫中的數據完整性。一般的存儲過程通過存儲過程名稱被直接調用,而觸發器主要是通過事件進行觸發而被執行(對表或視圖發出update、insert、delete語句)。 觸發器是一個功能強大的工具,它與表格緊密相連,在表中數據發生變化時自動強制執行。觸發器可以用于SQL Server約束、默認值和規則的完整性檢查,還可以完成難以用普通約束實現的復雜功能。 觸發器的優點觸發器是自動的執行的(往表里插入、修改、刪除時被自動激活,從而防止對數據的不正確修改)。觸發器是基于一個表創建的,但可以針對多個表進行操作,實現數據庫中的相關表進行層疊更改。觸發器可以實現比 check約束更為復雜的數據完整性約束。一個表中可以同時存在三個不同操作的觸發器,對于同一個修改語句可以有多個不同的對策以響應。