?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記娛樂在線官網:通過實例講解由淺入深學會存儲過程存儲過程

?

什么是存儲歷程呢?

定義:

將常用的或很繁雜的事情,預先用SQL語句寫好并用一個指定的名稱存儲起來, 那么今后要叫數據庫供給與已定義好的存儲歷程的功能相同的辦事時,只需調用execute,即可自動完成敕令。

講到這里,可能有人要問:這么說存儲歷程便是一堆SQL語句而已???

Microsoft公司為什么還要添加這個技巧呢?

那么存儲歷程與一樣平常的SQL語句有什么差別呢?

存儲歷程的優點:

1.存儲歷程只在創造時進行編譯,今后每次履行存儲歷程都不需再從新編譯,而一樣平常SQL語句每履行一次就編譯一次,以是應用存儲歷程可前進數據庫履行速率。

2.當對數據庫進行繁雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此繁雜操感化存儲歷程封裝起來與數據庫供給的事務處置懲罰結合一路應用。

3.存儲歷程可以重復應用,可削減數據庫開拓職員的事情量

4.安然性高,可設定只有某此用戶才具有對指定存儲歷程的應用權

存儲歷程的種類:

1.系統存儲歷程:以sp_開首,用來進行系統的各項設定.取得信息.相關治理事情,如 sp_help便是取得指定工具的相關信息

2.擴展存儲歷程 以XP_開首,用來調用操作系統供給的功能

exec master..xp_cmdshell 'ping 10.8.16.1'

3.用戶自定義的存儲歷程,這是我們所指的存儲歷程

常用款式

Create procedure procedue_name

[@parameter data_type][output]

[with]{recompile|encryption}

as

ql_statement

解釋:

output:表示此參數是可傳回的

with {recompile|encryption}

recompile:表示每次履行此存儲歷程時都從新編譯一次

encryption:所創建的存儲歷程的內容會被加密

如:

表book的內容如下

編號 書名 價格

001 C說話入門 $30

002 PowerBuilder報表開拓 $52

實例1:查詢表Book的內容的存儲歷程

create proc query_book

as

select * from book

go

exec query_book

實例2:加入一條記錄到表book,并查詢此表中所有冊本的總金額

Create proc inse和記娛樂在線官網rt_book

@param1 char(10),@param2 varchar(20),@param3 money,@param4 money output

with encryption ---------加密

as

insert book(編號,書名,價格) Values(@param1,@param2,@param3)

select @param4=sum(價格) from bo和記娛樂在線官網ok

go

履行例子:

declare @total_price money

exec insert_book '003',和記娛樂在線官網9;Delphi 控件開拓指南',$100,@total_price

print '總金額為'+convert(varchar,@total_price)

go

存儲歷程的3種傳回值:

1.以Return傳回整數

2.以output款式傳回參數

3.Recordset

傳回值的差別:

output和return都可在批次程式頂用變量接管,而recordset則傳回到履行批次的客戶端中

實例3:設有兩個表為Product,Order,其表內容如下:

Product

產品編號 產品名稱 客戶訂數

001 鋼筆 30

002 羊毫 50

003 鉛筆 100

Order

產品編號 客戶名 客戶訂金

001 南山區 $30

002 羅湖區 $50

003 寶安區 $4

請實現按編號為連接前提,將兩個表連接成一個臨時表,該表只含編號.產品名.客戶名.訂金.總金額,

總金額=訂金*訂數,臨時表放在存儲歷程中

代碼如下:

Create proc temp_sale

as

select a.產品編號,a.產品名稱,b.客戶名,b.客戶訂金,a.客戶訂數* b.客戶訂金 as總金額

into #temptable from Product a inner join Order 和記娛樂在線官網b on a.產品編號=b.產品編號

if @@error=0

print 'Good'

else

print 'F和記娛樂在線官網ail'

go

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户