




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、8.2.1 存儲(chǔ)過程概述存儲(chǔ)過程概述v在SQL Server 2000中,可以將某些需求多次調(diào)用的實(shí)現(xiàn)某個(gè)特定義務(wù)的代碼段編寫成一個(gè)過程,將其保管在數(shù)據(jù)庫中,并由SQL Server效力器經(jīng)過過程名來調(diào)用它們,這些過程就叫做存儲(chǔ)過程。8.2.1 存儲(chǔ)過程概述存儲(chǔ)過程概述v 應(yīng)該提倡多運(yùn)用存儲(chǔ)過程,緣由有以下幾點(diǎn)。v 1實(shí)現(xiàn)了模塊化編程。v 2調(diào)用一次以后,相關(guān)信息就保管在內(nèi)存中,下次調(diào)用時(shí)可以直接執(zhí)行。v 3存儲(chǔ)過程可以接受輸入?yún)?shù)并可以前往輸出值。v 4存儲(chǔ)過程具有對(duì)數(shù)據(jù)庫立刻訪問的功能。v 5運(yùn)用存儲(chǔ)過程可以加快程序的運(yùn)轉(zhuǎn)速度。v 6運(yùn)用存儲(chǔ)過程可以減少網(wǎng)絡(luò)流量。v 7運(yùn)用存儲(chǔ)過程可以提高
2、數(shù)據(jù)庫的平安性。8.2.1 存儲(chǔ)過程概述存儲(chǔ)過程概述v在SQL Server 2000中,存儲(chǔ)過程分為系統(tǒng)測(cè)試、用戶存儲(chǔ)過程、暫時(shí)存儲(chǔ)過程、擴(kuò)展存儲(chǔ)過程及遠(yuǎn)程存儲(chǔ)過程。v1.系統(tǒng)存儲(chǔ)過程是由系統(tǒng)自動(dòng)創(chuàng)建的,主要存儲(chǔ)在master數(shù)據(jù)庫中,普通以sp_為前綴。系統(tǒng)存儲(chǔ)過程完成的功能主要是從系統(tǒng)表中獲取信息。8.2.1 存儲(chǔ)過程概述存儲(chǔ)過程概述2. 用戶存儲(chǔ)過程是由用戶根據(jù)各自的運(yùn)用需求進(jìn)展創(chuàng)建,完成某一個(gè)特定功能的存儲(chǔ)過程。稱號(hào)前普通不加sp_。3. 暫時(shí)存儲(chǔ)過程屬于用戶存儲(chǔ)過程。假設(shè)用戶存儲(chǔ)過程名前有#,那么為暫時(shí)存儲(chǔ)過程,只能在一個(gè)用戶會(huì)話中運(yùn)用。如在名字前有#,那么表示為全局存儲(chǔ)過程,可以
3、再一切的用戶會(huì)話中運(yùn)用。8.2.1 存儲(chǔ)過程概述存儲(chǔ)過程概述4. 擴(kuò)展存儲(chǔ)過程是在SQL Server環(huán)境之外執(zhí)行的動(dòng)態(tài)鏈接庫(DLL),前綴為xp_。它們可以被加載到SQL Server系統(tǒng)中,并且按照存儲(chǔ)過程的方式執(zhí)行。5. 遠(yuǎn)程存儲(chǔ)過程是從遠(yuǎn)程效力器上調(diào)用的存儲(chǔ)過程,或是從銜接到另一個(gè)效力器上的客戶機(jī)上調(diào)用的存儲(chǔ)過程,是非本地效力器上的存儲(chǔ)過程。本卷須知本卷須知v 不能將創(chuàng)建存儲(chǔ)過程的語句與其他SQL語句組合到單個(gè)批處置中;v 默許權(quán)限屬于數(shù)據(jù)庫一切者,并可以將權(quán)限授予其他用戶;v 存儲(chǔ)過程是數(shù)據(jù)庫對(duì)象,稱號(hào)必需遵守標(biāo)示符規(guī)那么;v 只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建存儲(chǔ)過程;v 一個(gè)存儲(chǔ)過程的最大
4、尺寸為128M。8.2.2 創(chuàng)建存儲(chǔ)過程創(chuàng)建存儲(chǔ)過程v在SQL Server 2000中,可以運(yùn)用三種方法創(chuàng)建存儲(chǔ)過程。v運(yùn)用創(chuàng)建存儲(chǔ)過程導(dǎo)游創(chuàng)建存儲(chǔ)過程。v運(yùn)用SQL Server 2000企業(yè)管理器創(chuàng)建存儲(chǔ)過程。v運(yùn)用Transact-SQL語句中的CREATE PROCEDURE命令創(chuàng)建存儲(chǔ)過程。1運(yùn)用創(chuàng)建存儲(chǔ)過程導(dǎo)游創(chuàng)建存儲(chǔ)運(yùn)用創(chuàng)建存儲(chǔ)過程導(dǎo)游創(chuàng)建存儲(chǔ)過程過程v1在企業(yè)管理器中,選中某個(gè)SQL Server效力器,選擇要?jiǎng)?chuàng)建存儲(chǔ)過程的數(shù)據(jù)庫,選擇“工具菜單中的“導(dǎo)游菜單項(xiàng),單擊導(dǎo)游中“數(shù)據(jù)庫選項(xiàng)左邊的加號(hào),選中“創(chuàng)建存儲(chǔ)過程導(dǎo)游選項(xiàng)。v2單擊“確定按鈕。2運(yùn)用運(yùn)用SQL Server
5、2000企業(yè)管理企業(yè)管理器創(chuàng)建存儲(chǔ)過程器創(chuàng)建存儲(chǔ)過程v 運(yùn)用SQL Server 2000企業(yè)管理器創(chuàng)建存儲(chǔ)過程的步驟如下:v 在SQL Server 2000企業(yè)管理器中,選擇指定的效力器和數(shù)據(jù)庫,右擊要?jiǎng)?chuàng)建存儲(chǔ)過程的數(shù)據(jù)庫,在彈出的快捷菜單中依次選擇“新建“存儲(chǔ)過程命令;或者右擊數(shù)據(jù)庫中的存儲(chǔ)過程圖標(biāo),從彈出的快捷菜單中選擇“新建存儲(chǔ)過程命令。3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存語句創(chuàng)建存儲(chǔ)過程儲(chǔ)過程v可以運(yùn)用Transact-SQL語句中的CREATE PROCEDURE命令創(chuàng)建存儲(chǔ)過程,只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建存儲(chǔ)過程。3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存
6、儲(chǔ)過程v CREATE PROCEDURE的語法方式如下:v CREATE PROCEDURE procedure_name;number parameter data_type VARYING=defaultOUTPUT ,.n WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION FOR REPLICATION AS sql_statement .n v其中各參數(shù)的含義如下:vprocedure_name:用于指定所要?jiǎng)?chuàng)建存儲(chǔ)過程的稱號(hào)。vnumber:該參數(shù)是可選的整數(shù),它用來對(duì)同名的存儲(chǔ)過程分組,以便用一條DROP PROCEDURE語句即可將同
7、組的過程一同除去。3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存儲(chǔ)過程vparameter:過程中的參數(shù)。在CREATE PROCEDURE語句中可以聲明一個(gè)或多個(gè)參數(shù)。vdata_type:用于指定參數(shù)的數(shù)據(jù)類型。vVARYING:用于指定作為輸出OUTPUT參數(shù)支持的結(jié)果集。僅適用于游標(biāo)參數(shù)。3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存儲(chǔ)過程vdefault:用于指定參數(shù)的默許值。vOUTPUT:闡明該參數(shù)是一個(gè)前往參數(shù)。vRECOMPILE:闡明SQL Server 2000不會(huì)保管該存儲(chǔ)過程的執(zhí)行方案,該存儲(chǔ)過程每執(zhí)行一次都要重新編譯。3運(yùn)用運(yùn)用Trans
8、act-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存儲(chǔ)過程vENCRYPTION:表示對(duì)存儲(chǔ)過程文本進(jìn)展加密。vFOR REPLICATION:用于指定該存儲(chǔ)過程只能在數(shù)據(jù)復(fù)制時(shí)運(yùn)用。本選項(xiàng)不能和WITH RECOMPILE選項(xiàng)一同運(yùn)用。3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存儲(chǔ)過程vAS:用于指定該存儲(chǔ)過程要執(zhí)行的操作。vsql_statement:是存儲(chǔ)過程中包含的恣意數(shù)目和類型的Transact-SQL語句。3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存儲(chǔ)過程v例9-1 創(chuàng)建一個(gè)GetInfo,用于獲取一切學(xué)生信息。vIf existsv (SELECT name
9、FROM sysobjectsv WHERE name=GetInfo AND type=p )v DROP PROCEDURE GetInfovGOvCREATE PROCEDURE GetInfovAS v SELECT * FROM 學(xué)生表vGO3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存儲(chǔ)過程3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存儲(chǔ)過程v例9-2 創(chuàng)建一個(gè)StuInfo,用于獲取指定學(xué)生的信息。vIF EXISTSvvGOvCREATE RPOCEDURE StuInfov StuId varchar(8)vASv SELECT * FROM 學(xué)生
10、表v WHERE 學(xué)號(hào)=StuIdvGO3運(yùn)用運(yùn)用Transact-SQL語句創(chuàng)建存儲(chǔ)過程語句創(chuàng)建存儲(chǔ)過程v 例9-4 創(chuàng)建GetScore,獲取一切課程的平均成果、最高成果、最低成果。并前往結(jié)果。v IF EXISTS GOv CREATE PROCEDURE GetScorev kcID varchar(6), AVGScore int OUTPUT,v MAXScore int OUTPUT,MINScore int OUTPUTv ASv SELECT AVGScore=AVG(Grade),MAXScore=v MAX(Grade),MINScore=MIN(Grade)v FROM
11、 SCv WHERE Cno=kcID8.2.3 管理存儲(chǔ)過程管理存儲(chǔ)過程v1查看存儲(chǔ)過程v存儲(chǔ)過程被創(chuàng)建之后,它的名字就存儲(chǔ)在系統(tǒng)表sysobjects中,它的源代碼存放在系統(tǒng)表syscomments中??梢赃\(yùn)用企業(yè)管理器或系統(tǒng)存儲(chǔ)過程來查看用戶創(chuàng)建的存儲(chǔ)過程。1查看存儲(chǔ)過程查看存儲(chǔ)過程v在企業(yè)管理器中查看用戶創(chuàng)建的存儲(chǔ)過程的方法如下。v1在企業(yè)管理器中,翻開指定的效力器和數(shù)據(jù)庫項(xiàng),并單擊存儲(chǔ)過程文件夾,此時(shí)在右邊的窗格中就會(huì)顯示出數(shù)據(jù)庫中的一切存儲(chǔ)過程。1查看存儲(chǔ)過程查看存儲(chǔ)過程v2右擊要查看的存儲(chǔ)過程,從彈出的快捷菜單中選擇“屬性命令,會(huì)彈出“存儲(chǔ)過程屬性對(duì)話框。1查看存儲(chǔ)過程查看存儲(chǔ)過
12、程v也可以運(yùn)用系統(tǒng)存儲(chǔ)過程來查看用戶創(chuàng)建的存儲(chǔ)過程??晒┻\(yùn)用的系統(tǒng)存儲(chǔ)過程及其語法方式如下:v1sp_help:用于顯示存儲(chǔ)過程的參數(shù)及其數(shù)據(jù)類型vsp_help objname= namev參數(shù)name為要查看的存儲(chǔ)過程的稱號(hào)。1查看存儲(chǔ)過程查看存儲(chǔ)過程v2sp_helptext:用于顯示存儲(chǔ)過程的源代碼vsp_helptext objname= namev參數(shù)name為要查看的存儲(chǔ)過程的稱號(hào)。1查看存儲(chǔ)過程查看存儲(chǔ)過程v3sp_depends:用于顯示和存儲(chǔ)過程相關(guān)的數(shù)據(jù)庫對(duì)象vsp_depends objname=objectv參數(shù)object為要查看依賴關(guān)系的存儲(chǔ)過程的稱號(hào)。1查看存儲(chǔ)
13、過程查看存儲(chǔ)過程v4sp_stored_procedures:用于前往當(dāng)前數(shù)據(jù)庫中的存儲(chǔ)過程列表vsp_stored_proceduressp_name=namev,sp_owner=ownerv,sp_qualifier = qualifier1查看存儲(chǔ)過程查看存儲(chǔ)過程v其中,sp_name = name 用于指定前往目錄信息的過程名;sp_owner = owner 用于指定過程一切者的稱號(hào);sp_qualifier = qualifier 用于指定過程限定符的稱號(hào)。2修正存儲(chǔ)過程定義修正存儲(chǔ)過程定義v在企業(yè)管理器中,單擊目錄樹中的存儲(chǔ)過程圖標(biāo),在窗口的右側(cè)右擊要修正的存儲(chǔ)過程,從彈出的快
14、捷菜單中選擇“屬性命令,那么會(huì)出現(xiàn)存儲(chǔ)過程屬性對(duì)話框。2修正存儲(chǔ)過程定義修正存儲(chǔ)過程定義v 其語法方式如下:v ALTER PROCEDURE procedure_name;numberv parameterdata_typev VARYING=defaultOUTPUT,.nv WITHv RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTIONv FOR REPLICATIONv ASv sql_statement .n 3重命名存儲(chǔ)過程重命名存儲(chǔ)過程v在企業(yè)管理器中,右擊要操作的存儲(chǔ)過程稱號(hào),從彈出的快捷菜單中選擇“重命名命令,或者雙擊存儲(chǔ)過程稱號(hào),當(dāng)存儲(chǔ)過程稱
15、號(hào)變成可輸入形狀時(shí),就可以直接修正該存儲(chǔ)過程的稱號(hào)了。3重命名存儲(chǔ)過程重命名存儲(chǔ)過程v也可以運(yùn)用系統(tǒng)存儲(chǔ)過程sp_rename修正存儲(chǔ)過程的稱號(hào),其語法方式如下:vsp_rename 原存儲(chǔ)過程稱號(hào),新存儲(chǔ)過程稱號(hào)8.2.4 執(zhí)行存儲(chǔ)過程執(zhí)行存儲(chǔ)過程v 在SQL Server 2000中可以運(yùn)用EXECUTE命令來直接執(zhí)行存儲(chǔ)過程,語法方式如下:v EXECUTE return_status= procedure_name;number|procedure_name_var parameter=value|variableOUTPUT|DEFAULT ,.n WITH RECOMPILE 8.
16、2.4 執(zhí)行存儲(chǔ)過程執(zhí)行存儲(chǔ)過程v其中各選項(xiàng)的含義如下:vEXECUTE:執(zhí)行存儲(chǔ)過程的命令關(guān)鍵字,假設(shè)此語句是批處置中的第一條語句,可以省略此關(guān)鍵字。vreturn_status:是一個(gè)可選的整型變量,保管存儲(chǔ)過程的前往形狀。這個(gè)變量在運(yùn)用前,必需在批處置、存儲(chǔ)過程或函數(shù)中聲明過。8.2.4 執(zhí)行存儲(chǔ)過程執(zhí)行存儲(chǔ)過程vprocedure_name:指定執(zhí)行的存儲(chǔ)過程的稱號(hào)。v;number:用來指定該存儲(chǔ)過程與其他同名存儲(chǔ)過程同組時(shí)的標(biāo)識(shí)號(hào)。vprocedure_name_var:是部分定義變量名,代表存儲(chǔ)過程稱號(hào)。8.2.4 執(zhí)行存儲(chǔ)過程執(zhí)行存儲(chǔ)過程vparameter:是在創(chuàng)建存儲(chǔ)過程時(shí)
17、定義的過程參數(shù)。調(diào)用時(shí)向存儲(chǔ)過程所傳送的參數(shù)值由value參數(shù)或variable變量提供,或者運(yùn)用DEFAULT關(guān)鍵字指定運(yùn)用該參數(shù)的默許值,OUTPUT參數(shù)闡明指定參數(shù)為前往參數(shù)。vWITH RECOMPILE:指定在執(zhí)行存儲(chǔ)過程時(shí)重新編譯執(zhí)行方案。一個(gè)實(shí)例一個(gè)實(shí)例v創(chuàng)建一個(gè)存儲(chǔ)過程sortScore,用于獲取給定學(xué)號(hào)的某門課程考試成果能否及格的信息。v創(chuàng)建存儲(chǔ)過程:vCreate procedure sortScore kecheng char(2),vxuehao char(9)vAsvdeclare fenshu intvselect fenshu = gradevfrom scwhe
18、re cno = kecheng and sno = xuehaoif fenshu 60print 不及格else print 及格執(zhí)行過程:Exec sortScore 4, 2019151258.2.4 執(zhí)行存儲(chǔ)過程執(zhí)行存儲(chǔ)過程v例9-8 執(zhí)行9-4創(chuàng)建的GetScore,獲取課號(hào)為1的相關(guān)內(nèi)容。v程序清單如下:vdeclare AVGScore int,MAXScore int,MINScore intvexec GetScore 1,AVGScore out, MAXScore out, MINScore outvselect AVGScore , MAXScore , MINScorev!思索:執(zhí)行該存儲(chǔ)過程是,聲明的變量名能否要和定義的存儲(chǔ)過程的變量名堅(jiān)持一致。8.2.6 刪除存儲(chǔ)過程刪除存儲(chǔ)過程v1運(yùn)用企業(yè)管理器刪除存儲(chǔ)過程v在企業(yè)管理器中,右擊要?jiǎng)h除的存儲(chǔ)過程,從彈出的快捷菜單中選擇“刪除命令,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB14-T 1700-2025 設(shè)施番茄水肥一體化營養(yǎng)液配施指南
- 全國心理健康教育
- 車貸居間服務(wù)合同模板:合規(guī)經(jīng)營與風(fēng)險(xiǎn)防范
- 《動(dòng)物園門票》少兒美術(shù)教育繪畫課件創(chuàng)意教程教案
- 2025年動(dòng)植物保護(hù)法考試試題及答案
- 2025年初中學(xué)業(yè)水平考試試卷及答案
- 2025年心理學(xué)應(yīng)用與咨詢理論考試試題及答案
- 草原土地流轉(zhuǎn)與承包管理合同
- 采礦權(quán)質(zhì)押貸款合同范本下載
- 產(chǎn)業(yè)園區(qū)廠房股權(quán)轉(zhuǎn)讓與區(qū)域產(chǎn)業(yè)發(fā)展規(guī)劃合同
- 2025年高考全國二卷數(shù)學(xué)高考真題解析 含參考答案
- 防火門施工方案及工藝流程
- 保姆帶小孩合同協(xié)議書
- 工程監(jiān)理資料管理制度
- 全國導(dǎo)游資格證考試《全導(dǎo)+地導(dǎo)》真題及答案(2025年新版)
- 2025-2030中國智能功率模塊(IPM)行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025年邊封制袋機(jī)項(xiàng)目市場調(diào)查研究報(bào)告
- 江蘇省蘇州市姑蘇區(qū)2025屆七下數(shù)學(xué)期末復(fù)習(xí)檢測(cè)模擬試題含解析
- 2025春季學(xué)期國開電大專科《中級(jí)財(cái)務(wù)會(huì)計(jì)(二)》一平臺(tái)在線形考(第一至四次形考任務(wù))試題及答案
- 2025內(nèi)蒙古土地資源收儲(chǔ)投資(集團(tuán))有限公司常態(tài)化招聘50名急需緊缺專業(yè)人員(第十二批)筆試參考題庫附帶答案詳解
- 廣西壯族自治區(qū)貴港市“貴百河”聯(lián)考2024-2025學(xué)年高一下學(xué)期5月月考化學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論