sql存儲過程入門教程

sql存儲過程入門教程

ID:18462580

大?。?14.00 KB

頁數(shù):30頁

時間:2018-09-18

sql存儲過程入門教程_第1頁
sql存儲過程入門教程_第2頁
sql存儲過程入門教程_第3頁
sql存儲過程入門教程_第4頁
sql存儲過程入門教程_第5頁
資源描述:

《sql存儲過程入門教程》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、1.sql存儲過程概述在大型數(shù)據庫系統(tǒng)中,存儲過程和觸發(fā)器具有很重要的作用。無論是存儲過程還是觸發(fā)器,都是SQL語句和流程控制語句的集合。就本質而言,觸發(fā)器也是一種存儲過程。存儲過程在運算時生成執(zhí)行方式,所以,以后對其再運行時其執(zhí)行速度很快。SQLServer2000不僅提供了用戶自定義存儲過程的功能,而且也提供了許多可作為工具使用的系統(tǒng)存儲過程。1.1存儲過程的概念存儲過程(StoredProcedure)是一組為了完成特定功能的SQL語句集,經編譯后存儲在數(shù)據庫。中用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。在SQLServer的系列版本中存儲過程分為兩類

2、:系統(tǒng)提供的存儲過程和用戶自定義存儲過程。系統(tǒng)過程主要存儲在master數(shù)據庫中并以sp_為前綴,并且系統(tǒng)存儲過程主要是從系統(tǒng)表中獲取信息,從而為系統(tǒng)管理員管理SQLServer提供支持。通過系統(tǒng)存儲過程,MSSQLServer中的許多管理性或信息性的活動(如了解數(shù)據庫對象、數(shù)據庫信息)都可以被順利有效地完成。盡管這些系統(tǒng)存儲過程被放在master數(shù)據庫中,但是仍可以在其它數(shù)據庫中對其進行調用,在調用時不必在存儲過程名前加上數(shù)據庫名。而且當創(chuàng)建一個新數(shù)據庫時,一些系統(tǒng)存儲過程會在新數(shù)據庫中被自動創(chuàng)建。用戶自定義存儲過程是由用戶創(chuàng)建并能完成某一特定功能(如查詢用戶所需數(shù)據信息)的存儲過程。

3、在本章中所涉及到的存儲過程主要是指用戶自定義存儲過程。1.2存儲過程的優(yōu)點當利用MSSQLServer創(chuàng)建一個應用程序時,Transaction-SQL是一種主要的編程語言。若運用Transaction-SQL來進行編程,有兩種方法。其一是,在本地存儲Transaction-SQL程序,并創(chuàng)建應用程序向SQLServer發(fā)送命令來對結果進行處理。其二是,可以把部分用Transaction-SQL編寫的程序作為存儲過程存儲在SQLServer中,并創(chuàng)建應用程序來調用存儲過程,對數(shù)據結果進行處理存儲過程能夠通過接收參數(shù)向調用者返回結果集,結果集的格式由調用者確定;返回狀態(tài)值給調用者,指明調用

4、是成功或是失??;包括針對數(shù)據庫的操作語句,并且可以在一個存儲過程中調用另一存儲過程。我們通常更偏愛于使用第二種方法,即在SQLServer中使用存儲過程而不是在客戶計算機上調用Transaction-SQL編寫的一段程序,原因在于存儲過程具有以下優(yōu)點:(1)存儲過程允許標準組件式編程存儲過程在被創(chuàng)建以后可以在程序中被多次調用,而不必重新編寫該存儲過程的SQL語句。而且數(shù)據庫專業(yè)人員可隨時對存儲過程進行修改,但對應用程序源代碼毫無影響(因為應用程序源代碼只包含存儲過程的調用語句),從而極大地提高了程序的可移植性。(2)存儲過程能夠實現(xiàn)較快的執(zhí)行速度如果某一操作包含大量的Transactio

5、n-SQL代碼或分別被多次執(zhí)行,那么存儲過程要比批處理的執(zhí)行速度快很多。因為存儲過程是預編譯的,在首次運行一個存儲過程時,查詢優(yōu)化器對其進行分析、優(yōu)化,并給出最終被存在系統(tǒng)表中的執(zhí)行計劃。而批處理的Transaction-SQL語句在每次運行時都要進行編譯和優(yōu)化,因此速度相對要慢一些。(3)存儲過程能夠減少網絡流量對于同一個針對數(shù)據數(shù)據庫對象的操作(如查詢、修改),如果這一操作所涉及到的Transaction-SQL語句被組織成一存儲過程,那么當在客戶計算機上調用該存儲過程時,網絡中傳送的只是該調用語句,否則將是多條SQL語句,從而大大增加了網絡流量,降低網絡負載。(4)存儲過程可被作為

6、一種安全機制來充分利用系統(tǒng)管理員通過對執(zhí)行某一存儲過程的權限進行限制,從而能夠實現(xiàn)對相應的數(shù)據訪問權限的限制,避免非授權用戶對數(shù)據的訪問,保證數(shù)據的安全。(我們將在14章“SQLServer的用戶和安全性管理”中對存儲過程的這一應用作更為清晰的介紹)注意:存儲過程雖然既有參數(shù)又有返回值,但是它與函數(shù)不同。存儲過程的返回值只是指明執(zhí)行是否成功,并且它不能像函數(shù)那樣被直接調用,也就是在調用存儲過程時,在存儲過程名字前一定要有EXEC保留字。2.SQL存儲過程創(chuàng)建創(chuàng)建存儲過程,存儲過程是保存起來的可以接受和返回用戶提供的參數(shù)的Transact-SQL語句的集合。可以創(chuàng)建一個過程供永久使用,或在

7、一個會話中臨時使用(局部臨時過程),或在所有會話中臨時使用(全局臨時過程)。也可以創(chuàng)建在Microsoft?SQLServer?啟動時自動運行的存儲過程。2.1語法CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE

8、ENCRYPTION

9、RECOMPILE,EN

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。