第八章 存儲過程的創(chuàng)建和使用

第八章 存儲過程的創(chuàng)建和使用

ID:47351842

大小:54.50 KB

頁數(shù):7頁

時間:2019-08-09

第八章  存儲過程的創(chuàng)建和使用_第1頁
第八章  存儲過程的創(chuàng)建和使用_第2頁
第八章  存儲過程的創(chuàng)建和使用_第3頁
第八章  存儲過程的創(chuàng)建和使用_第4頁
第八章  存儲過程的創(chuàng)建和使用_第5頁
資源描述:

《第八章 存儲過程的創(chuàng)建和使用》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、第八章存儲過程的創(chuàng)建和使用8.1概述存儲過程就是存儲在SQLServer服務(wù)器中的一組編譯成單個執(zhí)行計劃的Transact-SQL語句。存儲過程存儲在數(shù)據(jù)庫內(nèi),可由應(yīng)用程序通過調(diào)用執(zhí)行。使用存儲過程不但可以提高Transact-SQL的執(zhí)行效率,而且可以使對數(shù)據(jù)庫的管理以及實(shí)現(xiàn)應(yīng)用復(fù)雜的業(yè)務(wù)更容易。存儲過程也可看作是一種沒有返回值的特殊函數(shù),它與函數(shù)的區(qū)別是:函數(shù)有返回值,其返回值可以直接在表達(dá)式、計算列中使用;而存儲過程只能調(diào)用執(zhí)行,它不能通過名稱得到返回值,也不能直接在表達(dá)式、計算列中使用。

2、8.1.1任務(wù)一理解存儲過程的概念存儲過程是SQL語句和可選控制流語句的預(yù)編譯集合,以一個名稱存儲并作為一個單元處理,存儲過程可以包含一條SELECT語句,也可包含一系列使用控制流的SQL語句。它們還可接受參數(shù)、返回輸出參數(shù)、返回狀態(tài)值,主要用來執(zhí)行管理任務(wù)或?qū)崿F(xiàn)應(yīng)用復(fù)雜的業(yè)務(wù)規(guī)則。8.1.2任務(wù)二理解存儲過程的優(yōu)點(diǎn)使用存儲過程與本地的Transact-SQL程序相比有如下好處。1、簡化用戶操作:存儲過程將一系列復(fù)雜的Transact-SQL代碼封裝在一起,作為數(shù)據(jù)庫對象存放于數(shù)據(jù)庫服務(wù)器內(nèi),用

3、戶使用時不必思考復(fù)雜的Transact-SQL語句而只需調(diào)用存儲過程即可得到所需結(jié)果,簡化了用戶操作。2、執(zhí)行效率更高:存儲過程已被編譯,執(zhí)行時不再花費(fèi)編譯與優(yōu)化時間。3、提高系統(tǒng)安全性:通過適當(dāng)?shù)臋?quán)限設(shè)置,可以使系統(tǒng)的安全性得到有效保障。4、運(yùn)行模塊化程序設(shè)計:可以只創(chuàng)建一次并將其存儲在數(shù)據(jù)庫中,以后即可在程序中調(diào)用該過程任意次,而且可以統(tǒng)一修改。8.2創(chuàng)建存儲過程8.2.1任務(wù)一使用企業(yè)管理器創(chuàng)建存儲過程1、啟動SQLServer企業(yè)管理器,一次單擊控制臺樹上的“服務(wù)器組”à“服務(wù)器”à“數(shù)

4、據(jù)庫”à“要創(chuàng)建存儲過程的數(shù)據(jù)庫”節(jié)點(diǎn)并右擊“存儲過程”節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建存儲過程”命令2、彈出存儲過程屬性對話框,在“文本”框中輸入存儲過程。包括修改存儲過程名,并在“AS”后輸入存儲過程內(nèi)容。3、單擊“檢查語法”按鈕,檢查所輸入的SQL語句語法是否正確。4、單擊“確定”按鈕,創(chuàng)建該存儲過程。8.2.2任務(wù)二使用Transact-SQL語句創(chuàng)建存儲過程可用CREATEPROCEDURE語句創(chuàng)建存儲過程,語法格式如下:CREATEPROC[EDURE]存儲過程名[;number]

5、[{@參數(shù)數(shù)據(jù)類型}[VARYING][=默認(rèn)值][OUTPUT]][,…n][WITH{RECOMPILE

6、ENCRYPTION

7、RECOMPILE,ENCRYPTION}][FORREPLICATION]ASSql語句[…n]參數(shù)說明:?存儲過程名:新建存儲過程名稱必須符合標(biāo)識符規(guī)則,且對于數(shù)據(jù)庫及其所有者必須唯一。?要創(chuàng)建局部臨時過程,可以在存儲過程名前面加一個編號符(#存儲過程名),要創(chuàng)建全局臨時過程,可以在存儲過程名前面加兩個編號符(##存儲過程名)。?;number:是可選的整數(shù),用

8、來對同名的過程分組,以便用一條DROPPROECDURE語句即可將同組的過程一起除去。?@參數(shù):過程中的參數(shù)。在CREATEPROCEDURE語句中可以聲明一個或多個參數(shù)。數(shù)據(jù)類型用于限定參數(shù)的數(shù)據(jù)類型。?OUTPUT:表名參數(shù)是否返回參數(shù)。該選項的值可以返回給EXEC[UTE]。使用OUTPUT參數(shù)可將信息返回給調(diào)用過程。?RECOMPILE:表明SQLServer不會緩存該過程的計劃,該過程將在運(yùn)行時重新編譯。?ENCRYPTION:表示SQLServer加密syscomments表中包含C

9、REATEPROCEDURE語句文本的條目。?FORREPLICATION:指定不能在訂閱服務(wù)器上執(zhí)行為復(fù)制創(chuàng)建的存儲過程。8.1執(zhí)行存儲過程當(dāng)需要執(zhí)行存儲過程時,要使用EXECUTE語句。如果存儲過程是批處理中的第一條語句,那么不使用EXECUTE關(guān)鍵字也可以執(zhí)行該存儲過程。例8-1創(chuàng)建一個名為“proc_1”的存儲過程,用于查看學(xué)生表的所有信息。然后調(diào)用該存儲過程。SQL語句如下:USESCinfoGOCREATEPROCEDUREproc_1ASSELECT*FROMStudents例8-

10、2創(chuàng)建一個名為“proc_2”的存儲過程,用于向?qū)W生表的所有字段添加一條記錄,記錄內(nèi)容由調(diào)用時決定。然后調(diào)用該存儲過程輸入一條記錄(1111,'關(guān)羽','M','English',30)。SQL語句如下:USESCinfoGOCREATEPROCEDUREproc_2@SnoSMALLINT,@SnameVARCHAR(8),@SsexCHAR(1),@SdeptVARCHAR(20),@SageTINYINTASINSERTINTOStudentsVALUES(@Sno,@Sname,@Sse

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

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

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