![訪問數(shù)據(jù)庫十二存儲過程_第1頁](http://file4.renrendoc.com/view11/M01/39/30/wKhkGWWTCxyAT6a3AACLVRZzxas179.jpg)
![訪問數(shù)據(jù)庫十二存儲過程_第2頁](http://file4.renrendoc.com/view11/M01/39/30/wKhkGWWTCxyAT6a3AACLVRZzxas1792.jpg)
![訪問數(shù)據(jù)庫十二存儲過程_第3頁](http://file4.renrendoc.com/view11/M01/39/30/wKhkGWWTCxyAT6a3AACLVRZzxas1793.jpg)
![訪問數(shù)據(jù)庫十二存儲過程_第4頁](http://file4.renrendoc.com/view11/M01/39/30/wKhkGWWTCxyAT6a3AACLVRZzxas1794.jpg)
![訪問數(shù)據(jù)庫十二存儲過程_第5頁](http://file4.renrendoc.com/view11/M01/39/30/wKhkGWWTCxyAT6a3AACLVRZzxas1795.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
單元五ADO.NET訪問數(shù)據(jù)庫(十二)存儲過程主講教師:宋園園學(xué)習(xí)目標(biāo)【知識目標(biāo)】1.了解存儲過程的語法,并會使用存儲過程;
【技能目標(biāo)】1.掌握存儲過程的基本語法;2.使用存儲過程實現(xiàn)對數(shù)據(jù)庫的操作;注:本課內(nèi)容參考教材單元五5.3存儲過程簡介存儲過程(StoredProcedure)是在大型數(shù)據(jù)庫系統(tǒng)中,一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。存儲過程簡介各種大型關(guān)系數(shù)據(jù)庫都支持存儲過程。存儲過程是一組SQL語句的集合,相當(dāng)于C#語言中的語法。存儲過程在效率、安全性、可復(fù)用方面比普通的SQL語句有優(yōu)勢,因此在實際項目中也有廣泛應(yīng)用。存儲過程的定義存儲過程(procedure)類似于C語言中的函數(shù)用來執(zhí)行管理任務(wù)或應(yīng)用復(fù)雜的業(yè)務(wù)規(guī)則存儲過程可以帶參數(shù),也可以返回結(jié)果類似于C語言中的函數(shù)intsum(inta,intb){ints;s=a+b;returns;}存儲過程相當(dāng)于C語言中的函數(shù)存儲過程可以包含哪些內(nèi)容存儲過程------------------------單個SELECT語句SELECT語句塊SELECT語句與邏輯控制語句可以包含存儲過程的優(yōu)點執(zhí)行速度更快允許模塊化程序設(shè)計提高系統(tǒng)安全性減少網(wǎng)絡(luò)流通量(因為存儲過程是保存在數(shù)據(jù)庫中的)存儲過程的分類1系統(tǒng)存儲過程由系統(tǒng)定義,存放在master數(shù)據(jù)庫中類似C語言中的系統(tǒng)函數(shù)系統(tǒng)存儲過程的名稱都以“sp_”開頭或”xp_”開頭2用戶自定義存儲過程由用戶在自己的數(shù)據(jù)庫中創(chuàng)建的存儲過程類似C語言中的用戶自定義函數(shù)常用的系統(tǒng)存儲過程系統(tǒng)存儲過程說明sp_databases列出服務(wù)器上的所有數(shù)據(jù)庫。sp_helpdb報告有關(guān)指定數(shù)據(jù)庫或所有數(shù)據(jù)庫的信息sp_renamedb更改數(shù)據(jù)庫的名稱sp_tables返回當(dāng)前環(huán)境下可查詢的對象的列表sp_columns回某個表列的信息sp_help查看某個表的所有信息sp_helpconstraint查看某個表的約束sp_helpindex查看某個表的索引sp_stored_procedures列出當(dāng)前環(huán)境中的所有存儲過程。sp_password添加或修改登錄帳戶的密碼。創(chuàng)建存儲過程定義存儲過程的語法createproc[edure]存儲過程名@參數(shù)數(shù)據(jù)類型=默認(rèn)值output,……,@參數(shù)n數(shù)據(jù)類型=默認(rèn)值outputASSQL語句GO和C語言的函數(shù)一樣,參數(shù)可選參數(shù)分為輸入?yún)?shù)、輸出參數(shù)輸入?yún)?shù)允許有默認(rèn)值帶參數(shù)的存儲過程intsum(inta,intb){ints;s=a+b;returns;}c=sum(5,8)傳入?yún)?shù)值返回結(jié)果存儲過程在Asp.Net中的應(yīng)用執(zhí)行系統(tǒng)存儲過程執(zhí)行無參數(shù)的存儲過程執(zhí)行帶參數(shù)的存儲過程存儲過程實例實例1:只返回單一記錄集的存儲過程。要求1:查詢表bankMoney的內(nèi)容的存儲過程
create
procedure
sp_query_bankMoney
as
select
*
from
bankMoney
go
exec
sp_query_bankMoney注*
在使用過程中只需要把中的SQL語句替換為存儲過程名,就可以了很方便吧!存儲過程實例實例2(向存儲過程中傳遞參數(shù)):加入一筆記錄到表bankMoney,并查詢此表中userID=
Zhangsan的所有存款的總金額。
Create
proc
insert_bank
@param1
char(10),@param2
varchar(20),@param3
varchar(20),@param4
int,@param5
int
output
with
encryption
---------加密
asinsert
bankMoney
(id,userID,sex,Money)
Values(@param1,@param2,@param3,
@param4)select
@param5=sum(Money)
from
bankMoney
where
userID='Zhangsan'
go在SQL
Server查詢分析器中執(zhí)行該存儲過程的方法是:
declare
@total_price
int
exec
insert_bank
'004','Zhangsan','男',100,@total_price
output
'總余額為'+convert(varchar,@total_price)
go存儲過程實例實例3:使用帶有復(fù)雜
Select
語句的簡單過程:下面的存儲過程從四個表的聯(lián)接中返回所有作者(提供了姓名)、出版的書籍以及出版社。該存儲過程不使用任何參數(shù)。
USE
pubs
IF
EXISTS
(Select
name
FROM
sysobjects
Where
name
=
'au_info_all'
AND
type
=
'P')
Drop
PROCEDURE
au_info_all
GO
Create
PROCEDURE
au_info_all
AS
Select
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
GO
存儲過程實例au_info_all
存儲過程可以通過以下方法執(zhí)行:
EXECUTE
au_info_all
--
or
EXEC
au_info_all如果該過程是批處理中的第一條語句,則可使用:
au_info_all存儲過程實例實例4:使用帶有參數(shù)的簡單過程
Create
PROCEDURE
au_info
@lastname
varchar(40),
@firstname
varchar(20)
AS
Select
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
Where
au_fname
=
@firstname
AND
au_lname
=
@lastname
GO存儲過程實例au_info
存儲過程可以通過以下方法執(zhí)行:
EXECUTE
au_info
'Dull',
'Ann'
--
or
EXECUTE
au_info
@lastname
=
'Dull',
@firstname
=
'Ann'
--
or
EXECUTE
au_info
@firstname
=
'Ann',
@lastname
=
'Dull'
--
or
EXEC
au_info
'Dull',
'Ann'
--
or
EXEC
au_info
@lastname
=
'Dull',
@firstname
=
'Ann'
--
or
EXEC
au_info
@firstname
=
'Ann',
@lastname
=
'Dull'存儲過程實例如果該過程是批處理中的第一條語句,則可使用:
au_info
'Dull',
'Ann'
--
or
au_info
@lastname
=
'Dull',
@firstname
=
'Ann'
--
or
au_info
@firstname
=
'Ann',
@lastname
=
'Dull'存儲過程實例實例5:使用帶有通配符參數(shù)的簡單過程
Create
PROCEDURE
au_info2
@lastname
varchar(30)
=
'D%',
@firstname
varchar(18)
=
'%'
AS
Select
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
Where
au_fname
LIKE
@firstname
AND
au_lname
LIKE
@lastname
GO存儲過程實例au_info2
存儲過程可以用多種組合執(zhí)行。下面只列出了部分組合:
EXECUTE
au_info2
--
or
EXECUTE
au_info2
'Wh%'
--
or
EXECUTE
au_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教學(xué)設(shè)計方案作業(yè)
- XX公司天花吊頂施工合作合同
- 個人貸款合同范文及格式
- 個人保證擔(dān)保借款合同書正式版
- 臨街門面租賃合同標(biāo)準(zhǔn)版
- 中鐵物資商城物流配送合同新范本
- 個人住房抵押借款合同模板
- 產(chǎn)品生產(chǎn)裝配標(biāo)準(zhǔn)化合同
- 采購預(yù)付款合同范本
- 臨建勞務(wù)合同范本
- 廉潔應(yīng)征承諾書
- 醫(yī)院定崗定編
- 計算機網(wǎng)絡(luò)畢業(yè)論文3000字
- 2023年大學(xué)物理化學(xué)實驗報告化學(xué)電池溫度系數(shù)的測定
- 農(nóng)村公共基礎(chǔ)知識
- 腦出血的護理課件腦出血護理查房PPT
- 煤礦機電運輸安全培訓(xùn)課件
- 扣繳個人所得稅報告表-(Excel版)
- Unit+4+History+and+Traditions單元整體教學(xué)設(shè)計課件 高中英語人教版(2019)必修第二冊單元整體教學(xué)設(shè)計
- 2023年全國自學(xué)考試00054管理學(xué)原理試題答案
- 六年級譯林版小學(xué)英語閱讀理解訓(xùn)練經(jīng)典題目(附答案)
評論
0/150
提交評論