資源描述:
《第六章、使用存儲(chǔ)過程實(shí)現(xiàn)進(jìn)銷存系統(tǒng)的業(yè)務(wù)邏輯ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第六章使用存儲(chǔ)過程提高進(jìn)銷存系統(tǒng)的執(zhí)行效率終極目標(biāo):能根據(jù)需要靈活、快速地創(chuàng)建存儲(chǔ)過程計(jì)算機(jī)應(yīng)用教研室本次課的學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)1.了解存儲(chǔ)過程2.掌握存儲(chǔ)過程的定義與使用學(xué)習(xí)重點(diǎn):掌握帶輸入?yún)?shù)和輸出參數(shù)的存儲(chǔ)過程的使用6.1工作任務(wù)任務(wù):待審核入出庫單選擇功能的選擇描述:此功能從沒有審核的入庫單的匯總數(shù)據(jù)中選擇需要審核的入出庫單,重點(diǎn)是此功能提供了通用查詢的實(shí)現(xiàn)方式6.1工作任務(wù)6.2存儲(chǔ)過程的優(yōu)點(diǎn)可以提供對數(shù)據(jù)的輕松訪問,客戶端不需要知道復(fù)雜的數(shù)據(jù)結(jié)構(gòu)或業(yè)務(wù)邏輯過程,只要把查詢指令通過存儲(chǔ)過程發(fā)給服務(wù)器,服務(wù)就把需要的數(shù)據(jù)返回給用戶.利用服務(wù)器強(qiáng)
2、大的計(jì)算能力和速度,避免了把大量的數(shù)據(jù)從服務(wù)器下載到客戶端,減少了網(wǎng)絡(luò)上傳輸量服務(wù)器只用把計(jì)算結(jié)果給客戶端,可提高客戶端工作的效率.6.3存儲(chǔ)過程的分類大體分為以下兩類:1.系統(tǒng)存儲(chǔ)過程.sqlserver有大量的系統(tǒng)存儲(chǔ)過程,用于管理sqlserver并顯示有關(guān)數(shù)據(jù)庫和用戶的信息.以sp_開關(guān),用戶一般不用sp_開頭的存儲(chǔ)過程.(擴(kuò)展存儲(chǔ)過程:xp_,如xp_cmdshell)2.用戶自定義存儲(chǔ)過程.用于解決用于的需要而建立的存儲(chǔ)過程.按返回?cái)?shù)據(jù)類型分為兩類:1.類似于select查詢,用于檢索數(shù)據(jù),檢索到的數(shù)據(jù)能夠以結(jié)果集的形式返回給客戶端.2.
3、通過輸出參數(shù)返回信息或不返回信息,或只執(zhí)行一個(gè)動(dòng)作.6.4存儲(chǔ)過程的定義語法格式Create[Procedure
4、Proc]存儲(chǔ)過程名稱參數(shù)名稱參數(shù)類型[output],參數(shù)名稱1參數(shù)類型[output]….AsT-SQL語句實(shí)現(xiàn)的業(yè)務(wù)邏輯6.5無參數(shù)存儲(chǔ)過程的創(chuàng)建語法CreateProc存儲(chǔ)過程名稱asT-SQL語句6.5無參數(shù)存儲(chǔ)過程的創(chuàng)建【例】定義存儲(chǔ)過程up_GetDay輸出當(dāng)前日期所在月份的第一天和最后一天createprocup_getdayasdeclare@daysint,@stdatetime,@eddatetimeselect@d
5、ays=day(getdate())-1select@st=dateadd(day,@days*(-1),getdate())select@ed=dateadd(day,-1,dateadd(month,1,@st))select@stasStDate,@edasEdDate6.5無參數(shù)存儲(chǔ)過程的調(diào)用1、Execute存儲(chǔ)過程名稱2、Exec存儲(chǔ)過程名稱3、存儲(chǔ)過程名稱Executeup_getdayExecup_getdayUp_getday6.6有參數(shù)存儲(chǔ)過程的定義語法格式Create[Procedure
6、Proc]存儲(chǔ)過程名稱參數(shù)名稱參數(shù)類型,
7、參數(shù)名稱1參數(shù)類型….AsT-SQL語句實(shí)現(xiàn)的業(yè)務(wù)邏輯6.6有參數(shù)存儲(chǔ)過程的定義【例】定義存儲(chǔ)過程up_GetEndDay,輸入?yún)?shù)年月(YYYYMM),輸入?yún)?shù)名稱@ymint,輸出參數(shù)所在月份的最后一天Createprocup_getEndDay@ymintasdeclare@daysint,@stdatetime,@eddatetimeselect@st=convert(varchar(8),@ym)+'01'select@days=day(@st)-1select@ed=dateadd(day,-1,dateadd(month,1,@st))
8、select@edased6.6有參數(shù)存儲(chǔ)過程的定義【例】定義存儲(chǔ)過程up_StudentQuery,輸入?yún)?shù)@cno,@Sno,@Sname,檢索學(xué)生課程成績信息,輸出學(xué)號(hào),姓名,課程編號(hào),課程名稱,成績6.6有參數(shù)存儲(chǔ)過程的定義6.6有參數(shù)存儲(chǔ)過程的定義Createprocup_studentquery@cnoint,@snovarchar(10),@snamevarchar(10)Asselectc.學(xué)號(hào),c.姓名,a.課程編號(hào),a.課程名稱,b.成績from課程ainnerjoin學(xué)生成績bona.課程編號(hào)=b.課程編號(hào)join學(xué)生conb.
9、學(xué)號(hào)=c.學(xué)號(hào)where(a.課程編號(hào)=@cnoor@cno=0)and(c.學(xué)號(hào)=@snoor@sno='')and(c.姓名=@snameor@sname='')6.6有參數(shù)存儲(chǔ)過程的調(diào)用Exec存儲(chǔ)過程名參數(shù)值,參數(shù)值1。。。必須按參數(shù)聲明順序輸入?yún)?shù)值Exec存儲(chǔ)過程名參數(shù)名=參數(shù)值,參數(shù)名=參數(shù)值。。。可不按參數(shù)聲明順序輸入?yún)?shù)值Up_getEndDay200910ExecUp_getEndDay200910ExecUp_getEndDay@ym=200910Execup_studentquery@Sno=‘’,@cno=0,@sname=
10、‘’6.7帶參數(shù)的存儲(chǔ)過程的定義語法格式Create[Procedure
11、Proc]存儲(chǔ)過程名稱參數(shù)名稱參數(shù)