SQL課件存儲過程和觸發(fā)器.ppt_第1頁
SQL課件存儲過程和觸發(fā)器.ppt_第2頁
SQL課件存儲過程和觸發(fā)器.ppt_第3頁
SQL課件存儲過程和觸發(fā)器.ppt_第4頁
SQL課件存儲過程和觸發(fā)器.ppt_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第10章 存儲過程和觸發(fā)器,教學提示:開發(fā)中編寫的一些SQL語句會占用程序的很大篇幅,而且不便于在其他地方重用,且由于這些SQL語句通常還要跨越傳輸途徑從外部不僅會導致程序的運行效率低,還會產(chǎn)生安全隱患,而存儲過程則能克服以上的缺陷。 觸發(fā)器可以大大增強應(yīng)用程序的健壯性、數(shù)據(jù)庫可恢復性和數(shù)據(jù)庫的可管理性。 存儲過程和觸發(fā)器都是SQL Server的數(shù)據(jù)庫對象。存儲過程的存在獨立于表,它存放在服務(wù)器上,供客戶端調(diào)用。,教學目標:本章主要包含以下內(nèi)容。 存儲過程概述 設(shè)計存儲過程 實現(xiàn)和管理存儲過程 觸發(fā)器概述 設(shè)計觸發(fā)器 實現(xiàn)和管理觸發(fā)器 通過本章的學習,使讀者掌握存儲過程和觸發(fā)器的基礎(chǔ)知識,并基本學會編寫簡單的存儲過程和觸發(fā)器,為以后在實際應(yīng)用中不斷提高自己編寫存儲過程和觸發(fā)器的技能打下良好的基礎(chǔ)。,第10章 存儲過程和觸發(fā)器,10.1 存儲過程概述 10.2 設(shè)計存儲過程 10.3 實現(xiàn)和管理存儲過程 10.4 觸發(fā)器概述 10.5 觸發(fā)器設(shè)計規(guī)則 10.6 實現(xiàn)和管理觸發(fā)器,10.1 存儲過程概述,10.1.1 存儲過程的特點 能夠在單個存儲過程中執(zhí)行一系列的Transact-SQL語句,能夠以在一個存儲過程中調(diào)用其他的存儲過程。 存儲過程是保存在服務(wù)器端的已經(jīng)編譯的Transact-SQL語句。 存儲過程可以使用控制流語句和變量,大大增強了SQL的功能。 存儲過程在提交前會自動檢查語法。 存儲過程是管理員放在服務(wù)器端的Transact-SQL語句。,10.1.2 存儲過程的分類 1. 用戶存儲過程 2. 系統(tǒng)存儲過程 3. 擴展存儲過程,10.2 設(shè)計存儲過程,10.2.1 一些設(shè)計規(guī)則 用戶在設(shè)計數(shù)據(jù)庫(的存儲過程)時,應(yīng)遵守以下規(guī)則: 在SQL Server 2005中,存儲過程可以使用Transact-SQL中的任何語句,但是表10.1中的語句除外。 略,10.2.2 存儲過程的內(nèi)部命名規(guī)范化 存儲過程中的Transact-SQL語句使用的對象名稱必須符合規(guī)范的模式,如果未指明對象所屬的模式,存儲過程將使用當前默認的模式。 每個存儲過程必須有惟一的名稱,存儲過程中使用的變量類型必須符合Transact-SQL的要求,變量名必須以開頭,并且存儲過程的名稱和變量的命名要符合Transact-SQL標識符規(guī)則。,10.2.3 存儲過程的加密定義 如果用戶想定義一個不讓其他用戶看到具體操作的存儲過程,可以使用WITH ENCRYPTION參數(shù),那么存儲過程將會以不可讀的狀態(tài)存在,并且存儲過程擁有者、創(chuàng)建者和數(shù)據(jù)庫管理員都不可見。,10.3 實現(xiàn)和管理存儲過程,10.3.1 創(chuàng)建存儲過程 由于必須使用Transact-SQL語句創(chuàng)建存儲過程,所以用戶必須首先掌握創(chuàng)建存儲過程的Transact-SQL語法結(jié)構(gòu),然后再學習如何使用Management Studio創(chuàng)建存儲過程。,10.3.2 執(zhí)行存儲過程 執(zhí)行存儲過程有多種方式,比較常用的有以下幾種。 1. 通過Execute或Exec語句執(zhí)行 2. 通過設(shè)置,使存儲過程自動執(zhí)行 3. 作為批處理的第一行,直接輸入存儲過程名,10.3.3 修改存儲過程 1. 修改存儲過程的語法 注意:修改存儲過程的名稱會影響已關(guān)聯(lián)對象對此存儲過程的調(diào)用。 2. 使用Management Studio修改存儲過程,10.3.4 重新編譯存儲過程 1.sp_recompile系統(tǒng)存儲過程可以強制指定的存儲過程在下次調(diào)用時重新編譯。其調(diào)用的語法結(jié)構(gòu)為:sp_recompile objname = object,其中的object為存儲過程的名稱。 2.在創(chuàng)建存儲過程時使用WITH RECOMPILE參數(shù)項,SQL Server將不會把此存儲過程放在緩沖存儲器中,并且每次調(diào)用此存儲過程時都會重新編譯。 3.在調(diào)用存儲過程時,可以使用參數(shù)選項WITH RECOMPILE強制重新編譯。使用這個參數(shù)項要求存儲過程的參數(shù)必須是非典型的或者數(shù)據(jù)發(fā)生了很大的變化,否則一般不用它。,10.3.5 刪除存儲過程 如果一個存儲過程不再需要,用戶就可以刪除它,但是如果此存儲過程有關(guān)聯(lián)存儲過程調(diào)用,系統(tǒng)會返回錯誤信息。但是刪除存儲過程后,用戶重新定義的同名稱同參數(shù)的存儲過程可以被原來關(guān)聯(lián)的對象使用。 刪除存儲過程的Transact-SQL語法結(jié)構(gòu)為: DROP PROCEDURE schema_name. procedure ,.n ,10.4 觸發(fā)器概述,觸發(fā)器是一種特殊類型的存儲過程,這種存儲過程能夠在某個規(guī)定的事件發(fā)生時觸發(fā)執(zhí)行。觸發(fā)器通常可以強制執(zhí)行一定的業(yè)務(wù)規(guī)則,以保持數(shù)據(jù)完整性、檢查數(shù)據(jù)有效性、實現(xiàn)數(shù)據(jù)庫管理任務(wù)和一些附加的功能。 觸發(fā)器是數(shù)據(jù)庫中比較高級的應(yīng)用,靈活使用觸發(fā)器可以大大增強應(yīng)用程序的健壯性、數(shù)據(jù)庫的可恢復性和數(shù)據(jù)庫的可管理性。同時可以使開發(fā)人員和數(shù)據(jù)庫管理員實現(xiàn)一些復雜的功能,簡化開發(fā)步驟,降低開發(fā)成本,增加開發(fā)效率,提高數(shù)據(jù)庫的可靠性。,10.4.1 觸發(fā)器的特點 觸發(fā)器是一種特殊的存儲過程,除了存儲過程的特點外,它還另外有以下特點: 觸發(fā)器是自動執(zhí)行的,可以在一定條件下觸發(fā)。 觸發(fā)器可以同步數(shù)據(jù)庫的相關(guān)表,進行級聯(lián)更改。 觸發(fā)器可以實現(xiàn)更復雜的安全檢查。它可以實現(xiàn)比CHECK更復雜的業(yè)務(wù)規(guī)則,還可以引用其他表中的列。 觸發(fā)器可以實現(xiàn)數(shù)據(jù)庫的管理任務(wù)。如DDL觸發(fā)器,在DDL語句執(zhí)行后觸發(fā),可以實現(xiàn)一些統(tǒng)一的數(shù)據(jù)庫管理策略。,10.4.2 觸發(fā)器的種類 1. DML觸發(fā)器 DML觸發(fā)器是在執(zhí)行數(shù)據(jù)操作語言事件時被調(diào)用的觸發(fā)器,其中數(shù)據(jù)操作語言事件包括:INSERT、UPDATE和DELETE語句。觸發(fā)器中可以包含復雜的Transact-SQL語句,觸發(fā)器整體被看作一個事務(wù),可以回滾。 2. DDL觸發(fā)器 與DML觸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論