可以把存儲過程當做:把一系列語句合併到一起的這麼一個整體
我覺得舉例說明比較好,給你個例子:
先將【表1】中ID號爲50—2000的記錄刪除、
再將【表2】中的這些記錄的狀態(STATUS)改爲“已解除”:
delete 表1 where ID > 50 and ID < 2000
update 表2 set STATUS = '已解除' where ID > 50 and ID < 2000
正常情況下,以上兩條語句分步執行就可以了,如果要用存儲過程呢?
先建立存儲過程(以下的語法爲Sybase數據庫的,其他數據庫類同):
create procedure PRC_TEST (@start_ID int, @end_ID int)
as
begin
delete 表1 where ID > @start_ID and ID < @end_ID
update 表2 set STATUS = '已解除' where ID > @start_ID and ID < @end_ID
end
好了,執行這個語句,就將存儲過程PRC_TEST提交到數據庫裏了,它有兩個參數:start_ID int 和 end_ID,代表起始和終止ID號,類型爲整數型int
怎麼用這個存儲過程呢? 這樣執行:exc PRC_TEST 50, 2000
執行時,它先得到了兩個參數,50、2000,分別賦值給start_ID int 和 end_ID,然後按照這兩個參數分步執行封裝在存儲過程裏的那兩條語句了。
如果你這樣執行:exc PRC_TEST 220, 8660
就是處理兩個表中ID介於220—8660之間的記錄了。
----------------------------------------------------------------------------
你也許會問了,既然可以分步執行的幾句SQL,爲什麼要費力的寫成存儲過程啊?
主要是(我的經驗和認識):
1、使數據處理參數化,對經常使用的一系列SQL進行封裝,使其成爲一個存儲過程的整體,在每次執行時只要更換執行參數即可,不用去改裏面每句SQL的where子句
2、★★這個很重要★★,假設你要循環處理某些數據,例如需要使用“遊標”、“Do...while...語句”…………時,就要用到存儲過程(或觸發器)
=====================================================================
最後給你轉一個短文吧,這是書面上的概念:
將常用的或很複雜的工作,預先用SQL語句寫好並用一個指定的名稱存儲起來, 那麼以後要叫數據庫提供與已定義好的存儲過程的功能相同的服務時,只需調用execute,即可自動完成命令。
那麼存儲過程與一般的SQL語句有什麼區別呢?
存儲過程的優點:
1.存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高數據庫執行速度。
2.當對數據庫進行復雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此複雜操作用存儲過程封裝起來與數據庫提供的事務處理結合一起使用。
3.存儲過程可以重複使用,可減少數據庫開發人員的工作量
4.安全性高,可設定只有某此用戶才具有對指定存儲過程的使用權
存儲過程的種類:
1.系統存儲過程:以prc_(或sp_)開頭,用來進行系統的各項設定.取得信息.相關管理工作,
如 sp_help就是取得指定對象的相關信息
2.擴展存儲過程 以XP_開頭,用來調用操作系統提供的功能
exec master..xp_cmdshell 'ping 10.8.16.1'
3.用戶自定義的存儲過程,這是我們所指的存儲過程
數據庫(2)——存儲過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
震驚:蔡英文決定 為安倍「下半旗」,真的合理嗎?
SteveSapp9
2022-07-11 17:06:56
哪些因素会影响性欲?这些因素不容小觑
SteveSapp9
2022-07-04 20:32:20
台媒爆料“台版51區”興建“神秘”設施 “面積大到令人好奇”
SteveSapp9
2022-06-23 14:39:41
河北省公安廳發布關於陳某誌等涉嫌尋釁滋事、暴力毆打他人等案件偵辦進展情況的通報
LouisRodgers5773
2022-06-21 16:49:16
曼聯遇到障礙將克里斯蒂安·埃里克森帶到老特拉福德
ktn83
2022-06-18 07:55:27
如何提高性生活質量?這六個妙招快快學起來!
mugiseki2710
2022-06-17 15:34:42
UEFAチャンピオンズリーグ決勝戦、米で視聴者数が過去最高に
fikik75972
2022-06-16 23:48:20
wewerewrr werwerwer
pennyjhurd
2022-06-12 18:34:42
fds rew rewrewrewrew
mufajiqe
2022-06-12 18:04:40
Deep Lake Water Cooling System Market To Witness Huge Growth By 2030
chhidami.a.msg
2022-06-08 22:14:54
專家建議晚飯只吃七分飽,常見的胃病有哪些?
LouisRodgers5773
2022-06-08 15:16:23
肝臟不好怎麼調理?
LouisRodgers5773
2022-06-08 14:49:19
中国人民解放军的最高军事机关为中央机关为中央军事委员会
fikik75972
2022-06-08 00:31:46
台中叫/小/姐瀨tea232台中/外/約✔外拍麻豆✔校園系花✔專櫃正妹❤
lan520an109
2022-06-07 19:29:34