版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、存儲過程(StedProcedure)是一組為了完成特定功能的SQL語句集,經編譯后存儲在數(shù)據(jù)庫中。用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。存儲過程是數(shù)據(jù)庫中的一個重要對象,任何一個設計良好的數(shù)據(jù)庫應用程序都應該用到存儲過程。一、存儲過程介紹一、存儲過程介紹存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優(yōu)化后存儲在數(shù)據(jù)庫服務器中,應用程序使用時只要調用即可。在ACLE中,若干個有聯(lián)系的過程可以
2、組合在一起構成程序包。存儲過程是利用SQLServer所提供的TransactSQL語言所編寫的程序。TransactSQL語言是SQLServer提供專為設計數(shù)據(jù)庫應用程序的語言,它是應用程序和SQLServer數(shù)據(jù)庫間的主要程序式設計界面。它好比acle數(shù)據(jù)庫系統(tǒng)中的ProSQL和Infmix的數(shù)據(jù)庫系統(tǒng)結構中的Infmix4GL語言。這類語言主要提供以下功能,讓用戶可以設計出符合引用需求的程序:1)、變量說明2)、ANSI兼容的S
3、QL命令(如Update….)3)、一般流程控制命令(if…else…、while….)4)、內部函數(shù)二、使用存儲過程有以下的優(yōu)點:二、使用存儲過程有以下的優(yōu)點:存儲過程的能力大大增強了SQL語言的功能和靈活性。存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的運算??杀WC數(shù)據(jù)的安全性和完整性。#通過存儲過程可以使沒有權限的用戶在控制之下間接地存取數(shù)據(jù)庫,從而保證數(shù)據(jù)的安全。#通過存儲過程可以使相關的動作在一起發(fā)
4、生,從而可以維護數(shù)據(jù)庫的完整性。在運行存儲過程前,數(shù)據(jù)庫已對其進行了語法和句法分析,并給出了優(yōu)化執(zhí)行方案。這種已經編譯好的過程可極大地改善SQL語句的性能。由于執(zhí)行SQL語句的大部分工作已經完成,所以存儲過程能以極快的速度執(zhí)行。可以降低網絡的通信量。使體現(xiàn)企業(yè)規(guī)則的運算程序放入數(shù)據(jù)庫服務器中,以便:#集中控制。#當企業(yè)規(guī)則發(fā)生變化時在服務器中改變存儲過程即可,無須修改任何應用程序。企業(yè)規(guī)則的特點是要經常變化,如果把體現(xiàn)企業(yè)規(guī)則的運算程序
5、放入應用程序中,則當企業(yè)規(guī)則發(fā)生變化時,就需要修改應用程序工作量非常之大(修改、發(fā)行和安裝應用程序)。如果把體現(xiàn)企業(yè)規(guī)則的運算放入存儲過程中,則當企業(yè)規(guī)則發(fā)生變化時,只要修改存儲過程就可以了,應用程序無須任何變化。三、存儲過程的種類:三、存儲過程的種類:1)、系統(tǒng)存儲過程:以sp_開頭用來進行系統(tǒng)的各項設定.取得信息.相關管理工作如sp_help就是取得指定對象的相關信息2)、擴展存儲過程以XP_開頭用來調用操作系統(tǒng)提供的功能..pin
6、g10.8.16.1recompile:表示每次執(zhí)行此存儲過程時都重新編譯一次encryption:所創(chuàng)建的存儲過程的內容會被加密如:表book的內容如下編號書名價格001C語言入門$30002PowerBuilder報表開發(fā)$52實例1:查詢表Book的內容的存儲過程createprocquery_bookasfrombookgoexecquery_book實例2:加入一筆記錄到表book并查詢此表中所有書籍的總金額Createpro
7、c_book@param1(10)@param2var(20)@param3money@param4moneyoutputwithencryption加密asbook(編號書名價格)Values(@param1@param2@param3)@param4=sum(價格)frombookgo執(zhí)行例子:declare@total_pricemoneyexec_book003Delphi控件開發(fā)指南$100@total_priceprint總
8、金額為convert(var@total_price)go存儲過程的3種傳回值:1)、以Return傳回整數(shù)2)、以output格式傳回參數(shù)3)、Recdset傳回值的區(qū)別:output和return都可在批次程式中用變量接收,而recdset則傳回到執(zhí)行批次的客戶端中。實例3:設有兩個表為Productder_其表內容如下:Product產品編號產品名稱客戶訂數(shù)001鋼筆30002毛筆50003鉛筆100der_產品編號客戶名客戶訂金
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論