SQL帶參數(shù)的存儲(chǔ)過(guò)程_第1頁(yè)
SQL帶參數(shù)的存儲(chǔ)過(guò)程_第2頁(yè)
SQL帶參數(shù)的存儲(chǔ)過(guò)程_第3頁(yè)
SQL帶參數(shù)的存儲(chǔ)過(guò)程_第4頁(yè)
SQL帶參數(shù)的存儲(chǔ)過(guò)程_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、創(chuàng)建帶參數(shù)的存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程的參數(shù)分兩種:輸入?yún)?shù)輸出參數(shù)int sum (int a, int b) int s; s=a+b; return s;c=sum(5, 8)傳入?yún)?shù)值輸入?yún)?shù): 用于向存儲(chǔ)過(guò)程傳入值,類(lèi)似C語(yǔ)言的按值傳遞; 輸出參數(shù): 用于在調(diào)用存儲(chǔ)過(guò)程后, 返回結(jié)果,類(lèi)似C語(yǔ)言的 按引用傳遞; 返回結(jié)果1帶輸入?yún)?shù)的存儲(chǔ)過(guò)程問(wèn)題:修改上例:由于每次考試的難易程度不一樣,每次 筆試和機(jī)試的及格線(xiàn)可能隨時(shí)變化(不再是60分),這導(dǎo)致考試的評(píng)判結(jié)果也相應(yīng)變化。分析:在述存儲(chǔ)過(guò)程添加2個(gè)輸入?yún)?shù):writtenPass 筆試及格線(xiàn) labPass 機(jī)試及格線(xiàn) 2帶輸入?yún)?shù)的存儲(chǔ)過(guò)程C

2、REATE PROCEDURE proc_stu writtenPass int, labPass int AS print - print 參加本次考試沒(méi)有通過(guò)的學(xué)員: SELECT stuName,stuInfo.stuNo,writtenExam, labExam FROM stuInfo INNER JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo WHERE writtenExamwrittenPass OR labExamlabPass GO輸入?yún)?shù):筆試及格線(xiàn)輸入?yún)?shù):機(jī)試及格線(xiàn)查詢(xún)沒(méi)有通過(guò)考試的學(xué)員3帶輸入?yún)?shù)的存儲(chǔ)過(guò)程3-3EXEC

3、proc_stu 60,55 調(diào)用帶參數(shù)的存儲(chǔ)過(guò)程 假定本次考試機(jī)試偏難,機(jī)試的及格線(xiàn)定為55分,筆試及格線(xiàn)定為60分-或這樣調(diào)用:EXEC proc_stu labPass=55,writtenPass=60機(jī)試及格線(xiàn)降分后,李斯文(59分)成為“漏網(wǎng)之魚(yú)”了4輸入?yún)?shù)的默認(rèn)值3-1帶參數(shù)的存儲(chǔ)過(guò)程確實(shí)比較方便,調(diào)用者可根據(jù)試卷的難易度,隨時(shí)修改每次考試的及格線(xiàn)問(wèn)題:如果試卷的難易程度合適,則調(diào)用者還是必須如此調(diào)用: EXEC proc_stu 60,60,比較麻煩這樣調(diào)用就比較合理:EXEC proc_stu 55EXEC proc_stu 筆試及格線(xiàn)55分,機(jī)試及格線(xiàn)默認(rèn)為60分 筆試和

4、機(jī)試及格線(xiàn)都默認(rèn)為標(biāo)準(zhǔn)的60分5CREATE PROCEDURE proc_stu writtenPass int=60, labPass int=60 AS print - print 參加本次考試沒(méi)有通過(guò)的學(xué)員: SELECT stuName,stuInfo.stuNo,writtenExam, labExam FROM stuInfo INNER JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo WHERE writtenExamwrittenPass OR labExamlabPass GO筆試及格線(xiàn):默認(rèn)為60分機(jī)試及格線(xiàn):默認(rèn)為60分查詢(xún)沒(méi)

5、有通過(guò)考試的學(xué)員輸入?yún)?shù)的默認(rèn)值3-26輸入?yún)?shù)的默認(rèn)值3-3EXEC proc_stu -都采用默認(rèn)值 EXEC proc_stu 64 -機(jī)試采用默認(rèn)值 EXEC proc_stu 60,55 -都不采用默認(rèn)值 調(diào)用帶參數(shù)默認(rèn)值的存儲(chǔ)過(guò)程-錯(cuò)誤的調(diào)用方式:希望筆試采用默認(rèn)值,機(jī)試及格線(xiàn)55分EXEC proc_stu ,55 -正確的調(diào)用方式:EXEC proc_stu labPass=55 7帶輸出參數(shù)的存儲(chǔ)過(guò)程 如果希望調(diào)用存儲(chǔ)過(guò)程后,返回一個(gè)或多個(gè)值,這時(shí)就需要使用輸出(OUTPUT)參數(shù)了 問(wèn)題:修改上例,返回未通過(guò)考試的學(xué)員人數(shù)。8CREATE PROCEDURE proc_st

6、u notpassSum int OUTPUT, writtenPass int=60, labPass int=60 AS SELECT stuName,stuInfo.stuNo,writtenExam, labExam FROM stuInfo INNER JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo WHERE writtenExamwrittenPass OR labExamlabPass SELECT notpassSum=COUNT(stuNo) FROM stuMarks WHERE writtenExamwrittenPass OR labExam=3 print 未通過(guò)人數(shù):+convert(varchar(5),sum)+ 人, 超過(guò)60%,及格分?jǐn)?shù)線(xiàn)還應(yīng)下調(diào)ELSE print 未通過(guò)人數(shù):+convert(varchar(5),sum)+ 人, 已控制在60%以下,及格分?jǐn)?shù)線(xiàn)適中GO 調(diào)用帶輸

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論