資源描述:
《SQL Server2000實用教程 教學(xué)課件 作者 蔣文沛 第8章 .ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、第8章存儲過程在SQLServer數(shù)據(jù)庫系統(tǒng)中,存儲過程具有很重要的作用,存儲過程是Transact-SQL語句的集合,它提供了一種高效和安全的訪問數(shù)據(jù)庫的方法,經(jīng)常被用來訪問數(shù)據(jù)和管理被修改的數(shù)據(jù),SQLServer2000不僅提供了用戶自定義存儲過程的功能,而且也提供了許多可作為工具使用的系統(tǒng)存儲過程。本章重點介紹存儲過程的概念、使用企業(yè)管理器和Transact-SQL語句創(chuàng)建和管理存儲過程,并介紹存儲過程的一些應(yīng)用技巧。SQLServer2000實用教程8.1存儲過程簡介存儲過程存放在服務(wù)器端數(shù)據(jù)庫中,是經(jīng)編譯過的能完成特定功能的Transac
2、t-SQL語句的集合,是作為一個單元來處理的。存儲過程在第一次執(zhí)行時進行語法檢查和編譯,執(zhí)行后它的執(zhí)行計劃就駐留在高速緩存中,用于后續(xù)調(diào)用。存儲過程可以接收和輸出參數(shù)、返回執(zhí)行存儲過程的狀態(tài)值,還可以嵌套調(diào)用。用戶可以像使用函數(shù)一樣重復(fù)調(diào)用這些存儲過程,實現(xiàn)它所定義的操作。SQLServer2000實用教程8.1.1存儲過程的優(yōu)點(1)執(zhí)行速度快,改善系統(tǒng)性能:存儲過程在服務(wù)器端運行,可以利用服務(wù)器強大的計算能力和速度,執(zhí)行速度快。而且存儲過程是預(yù)編譯的,第一次執(zhí)行后的存儲過程會駐留在高速緩存中,以后直接調(diào)用,執(zhí)行速度很快,如果某個操作需要大量的T-
3、SQL語句或重復(fù)執(zhí)行,那么使用存儲過程比直接使用T-SQL語句執(zhí)行得更快。(2)減少網(wǎng)絡(luò)流量:用戶可以通過發(fā)送一條執(zhí)行存儲過程的語句實現(xiàn)一個復(fù)雜的操作,而不需要在網(wǎng)絡(luò)上發(fā)送幾百條T-SQL語句,這樣可以減少在服務(wù)器和客戶端之間傳遞語句的數(shù)量,減輕了服務(wù)器的負擔(dān)。SQLServer2000實用教程8.1.2存儲過程的類別(1)系統(tǒng)存儲過程系統(tǒng)存儲過程主要從系統(tǒng)表中查詢信息或完成與更新數(shù)據(jù)庫表相關(guān)的管理任務(wù)或其他的系統(tǒng)管理任務(wù)。存儲在master數(shù)據(jù)庫中,可以在其他數(shù)據(jù)庫中任意進行調(diào)用,由前綴“sp_”標(biāo)識。(2)本地存儲過程指在用戶數(shù)據(jù)庫中創(chuàng)建的存儲過
4、程。(3)遠程存儲過程指從遠程服務(wù)器上調(diào)用的存儲過程。是SQLServer早期的功能,現(xiàn)在,分布式查詢支持該功能。SQLServer2000實用教程8.2創(chuàng)建存儲過程1.使用向?qū)?chuàng)建存儲過程在企業(yè)管理器中,選擇“工具”菜單中的“向?qū)А边x項,展開“數(shù)據(jù)庫”文件夾,選擇“創(chuàng)建存儲過程向?qū)А?2.在企業(yè)管理器中直接創(chuàng)建存儲過程在企業(yè)管理器中創(chuàng)建存儲過程的步驟如下:(1)啟動SQLServer企業(yè)管理器。在控制臺樹中,依次展開MicrosoftSQLServer、SQLServer組和用戶的服務(wù)器。(2)展開“數(shù)據(jù)庫”文件夾,展開要存放存儲過程的數(shù)據(jù)庫,然后
5、右擊“存儲過程”節(jié)點,在彈出菜單中選擇命令“新建存儲過程”。SQLServer2000實用教程8.3執(zhí)行存儲過程【例8.1】本例創(chuàng)建一個簡單的無參數(shù)的存儲過程:在Sales數(shù)據(jù)庫中,創(chuàng)建存儲過程proc_Employees,查詢所有的員工信息。創(chuàng)建和執(zhí)行存儲過程的腳本內(nèi)容如下:USESalesGOCREATEPROCproc_EmployeesASSELECT*FROMEmployees--執(zhí)行存儲過程EXECproc_Employees【例8.2】創(chuàng)建一個帶有輸入?yún)?shù)的存儲過程proc_goods,查詢指定員工所進商品信息。創(chuàng)建和執(zhí)行存儲過程的腳本
6、內(nèi)容如下:USESalesGOCREATEPROCproc_goods@員工編號char(6)='1001'ASSELECT商品編號,商品名稱,生產(chǎn)廠商,進貨價,零售價,數(shù)量,進貨時間FROMGoodsWHERE進貨員工編號=@員工編號--執(zhí)行存儲過程,查詢1001號員工所進的商品的信息EXECproc_goods@員工編號=defaultSQLServer2000實用教程8.4修改和刪除存儲過程1.查看存儲過程定義文本和修改存儲過程鼠標(biāo)右鍵單擊所要查看的存儲過程,在彈出菜單中選擇命令“屬性”,可以查看該存儲過程的定義文本和修改存儲過程代碼。2.在企
7、業(yè)管理器中查看存儲過程的相關(guān)性鼠標(biāo)右鍵單擊需要查看相關(guān)性的存儲過程,在彈出菜單中選擇命令“所有任務(wù)”,然后選擇“顯示相關(guān)性”,則可以在相關(guān)性對話框中查看到依附于該存儲過程的對象和該存儲過程依附的對象。3.重命名存儲過程鼠標(biāo)右鍵單擊需要重命名的存儲過程,在彈出菜單中選擇命令“重命名”,則可以修改存儲過程的名稱。SQLServer2000實用教程本章小結(jié)存儲過程是一種數(shù)據(jù)庫對象,是存儲在服務(wù)器上的一組預(yù)定義的SQL語句集合。創(chuàng)建存儲過程并將編譯好的版本存儲在高速緩存中,可以加快程序的執(zhí)行效率。存儲過程可以有輸入、輸出參數(shù),可以返回結(jié)果集以及返回值。通過本
8、章的學(xué)習(xí),應(yīng)掌握各種存儲過程的創(chuàng)建、執(zhí)行、修改和刪除方法。SQLServer2000實用教程本章習(xí)題1、EX