存儲(chǔ)過(guò)程的創(chuàng)建與使用

存儲(chǔ)過(guò)程的創(chuàng)建與使用

ID:41955412

大小:709.01 KB

頁(yè)數(shù):75頁(yè)

時(shí)間:2019-09-05

存儲(chǔ)過(guò)程的創(chuàng)建與使用_第1頁(yè)
存儲(chǔ)過(guò)程的創(chuàng)建與使用_第2頁(yè)
存儲(chǔ)過(guò)程的創(chuàng)建與使用_第3頁(yè)
存儲(chǔ)過(guò)程的創(chuàng)建與使用_第4頁(yè)
存儲(chǔ)過(guò)程的創(chuàng)建與使用_第5頁(yè)
資源描述:

《存儲(chǔ)過(guò)程的創(chuàng)建與使用》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、《數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用》第9章存儲(chǔ)過(guò)程的創(chuàng)建和使用自定義函數(shù)的創(chuàng)建與使用?CREATEFUNCTION函數(shù)名(參數(shù)表)RETURNS返回值的類(lèi)型[AS]BEGIN函數(shù)體RETURN返回的表達(dá)式END調(diào)用:SET@result=dbo.fun_SumCount(@maxprice,@minprice)存儲(chǔ)過(guò)程與自定義函數(shù)的區(qū)別?存儲(chǔ)過(guò)程是使用EXEC命令獨(dú)立調(diào)用的,而用戶(hù)自定義函數(shù)是在另一個(gè)SQL語(yǔ)句中調(diào)用的。存儲(chǔ)過(guò)程是允許用戶(hù)和程序去使用存儲(chǔ)的程序,而不是允許其存取表,這樣能夠增強(qiáng)程序安全性。與標(biāo)準(zhǔn)的SQLServer相比,存儲(chǔ)程序限制用戶(hù)行動(dòng)權(quán)限方面更為細(xì)化。例

2、如,如果你有一個(gè)貨存表,每次賣(mài)出一個(gè)貨物收銀員都要對(duì)表進(jìn)行更新一次(從貨存中把該貨品減去一件)。你可以給收銀員設(shè)置權(quán)限,允許其使用decrement_item存儲(chǔ)過(guò)程,而不是允許他們有任意修改表的權(quán)限。函數(shù)必須始終返回一個(gè)值(一個(gè)標(biāo)量值或一個(gè)表格)。而存儲(chǔ)過(guò)程可以返回一個(gè)標(biāo)量值、一個(gè)表值或無(wú)需返回值??偠灾鎯?chǔ)程序?qū)QLServer開(kāi)發(fā)員來(lái)說(shuō)是最有價(jià)值的寶物之一,用于數(shù)據(jù)庫(kù)中,能夠大大的提高工作效率,增強(qiáng)安全性,絕對(duì)超值。本章主要內(nèi)容存貯過(guò)程概述創(chuàng)建存儲(chǔ)過(guò)程執(zhí)行存儲(chǔ)過(guò)程查看和修改存儲(chǔ)過(guò)程常用的系統(tǒng)存儲(chǔ)過(guò)程本章核心知識(shí)點(diǎn)利用T-SQL創(chuàng)建存儲(chǔ)過(guò)程存貯過(guò)程的

3、執(zhí)行存貯過(guò)程的重新編譯本章重點(diǎn)難點(diǎn)在存貯過(guò)程中使用參數(shù)重新編譯存貯過(guò)程本章教學(xué)目標(biāo)了解存儲(chǔ)過(guò)程的概念和優(yōu)點(diǎn),能夠在實(shí)際應(yīng)用中設(shè)計(jì)合適的存儲(chǔ)過(guò)程理解存儲(chǔ)過(guò)程的類(lèi)型,掌握一定數(shù)量的系統(tǒng)存儲(chǔ)過(guò)程掌握如何創(chuàng)建和執(zhí)行存儲(chǔ)過(guò)程。掌握管理存儲(chǔ)過(guò)程的方法。第9章存儲(chǔ)過(guò)程的創(chuàng)建和使用顧名思義,存儲(chǔ)過(guò)程就是存儲(chǔ)在SQLSERVER服務(wù)器中的一組編譯成單個(gè)執(zhí)行計(jì)劃的T-SQL語(yǔ)句。9.1概述在創(chuàng)建SQLServer數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),Transact-SQL語(yǔ)言是應(yīng)用程序和SQLServer數(shù)據(jù)庫(kù)之間的主要編程接口??捎萌缦聝煞N方法存儲(chǔ)和執(zhí)行Transact-SQL語(yǔ)句。(1)SQL

4、語(yǔ)句嵌入在開(kāi)發(fā)語(yǔ)言中,執(zhí)行時(shí)向SQLServer發(fā)送命令并處理結(jié)果的應(yīng)用程序。)(2)可以將Transact-SQL程序保存在SQLServer中,即存儲(chǔ)過(guò)程,開(kāi)發(fā)語(yǔ)言中直接調(diào)用該存儲(chǔ)過(guò)程。9.1.1理解存儲(chǔ)過(guò)程的概念存儲(chǔ)過(guò)程是SQL語(yǔ)句和可選控制流語(yǔ)句的預(yù)編譯集合,以一個(gè)名稱(chēng)存儲(chǔ)并作為一個(gè)單元處理,其中可包含程序流、邏輯以及對(duì)數(shù)據(jù)庫(kù)的查詢(xún),存儲(chǔ)過(guò)程可以包含一條SELECT語(yǔ)句,也可包含一系列使用控制流的SQL語(yǔ)句,如圖9-1所示。它們還可接受參數(shù)、返回輸出參數(shù)、返回狀態(tài)值,主要用來(lái)執(zhí)行管理任務(wù)或?qū)崿F(xiàn)應(yīng)用復(fù)雜的業(yè)務(wù)規(guī)則。。9.1.2理解存儲(chǔ)過(guò)程的優(yōu)點(diǎn)使用存儲(chǔ)過(guò)

5、程與本地的Transact-SQL程序相比有如下好處:1.簡(jiǎn)化用戶(hù)操作存儲(chǔ)過(guò)程將一系列復(fù)雜的T-SQL代碼封裝在一起,作為數(shù)據(jù)庫(kù)對(duì)象存放于數(shù)據(jù)庫(kù)服務(wù)器內(nèi),用戶(hù)使用時(shí)不必思考復(fù)雜的T-SQL語(yǔ)句而只需調(diào)用存儲(chǔ)過(guò)程即可得到所需結(jié)果,簡(jiǎn)化了用戶(hù)操作。2.執(zhí)行效率更高存儲(chǔ)過(guò)程已被編譯,執(zhí)行時(shí)不再花費(fèi)編譯與優(yōu)化時(shí)間。這不同于T-SQL語(yǔ)句,每次運(yùn)行時(shí)都要從客戶(hù)端重復(fù)發(fā)送,并由SQLSERVER進(jìn)行編譯和優(yōu)化。在需要大量T-SQL代碼或需重復(fù)執(zhí)行時(shí),存儲(chǔ)過(guò)程比T-SQL批代碼的執(zhí)行要快。3.減少網(wǎng)絡(luò)流量特別對(duì)于復(fù)雜的商業(yè)業(yè)務(wù)計(jì)算,例如計(jì)算用戶(hù)的每月應(yīng)交電費(fèi),如采用T-SQ

6、L實(shí)現(xiàn),則需要大量的T-SQL語(yǔ)句和中間數(shù)據(jù)在客戶(hù)機(jī)與SQLSERVER服務(wù)器之間的網(wǎng)絡(luò)通道上傳送;采用存儲(chǔ)過(guò)程實(shí)現(xiàn),則只需由一條執(zhí)行存儲(chǔ)過(guò)程的單獨(dú)語(yǔ)句就可實(shí)現(xiàn),大大減少網(wǎng)絡(luò)流量。4.提高系統(tǒng)安全性可作為安全機(jī)制使用。通過(guò)適當(dāng)?shù)臋?quán)限設(shè)置,可以使系統(tǒng)的安全性得到有效保障。5.允許模塊化程序設(shè)計(jì)存儲(chǔ)過(guò)程可以封裝企業(yè)的功能模塊,這種企業(yè)的功能模塊也為商業(yè)規(guī)則或者商業(yè)策賂,可以只創(chuàng)建一次并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中,以后即可在程序中調(diào)用該過(guò)程任意次,而且可以統(tǒng)一修改。9.1.3掌握存儲(chǔ)過(guò)程的分類(lèi)存儲(chǔ)過(guò)程分為兩大類(lèi):系統(tǒng)存儲(chǔ)過(guò)程和用戶(hù)自定義存儲(chǔ)過(guò)程。系統(tǒng)存儲(chǔ)過(guò)程:由系統(tǒng)定義的存

7、儲(chǔ)過(guò)程,存放在master數(shù)據(jù)庫(kù)中,類(lèi)似C語(yǔ)言中的系統(tǒng)函數(shù)。系統(tǒng)存儲(chǔ)過(guò)程的名稱(chēng)都以“sp_”開(kāi)頭開(kāi)頭,可以在任何數(shù)據(jù)庫(kù)中執(zhí)行系統(tǒng)存儲(chǔ)過(guò)程。用戶(hù)自定義存儲(chǔ)過(guò)程:由用戶(hù)在自己的數(shù)據(jù)庫(kù)中創(chuàng)建的存儲(chǔ)過(guò)程,類(lèi)似C語(yǔ)言中的自定義函數(shù),只能在特定的數(shù)據(jù)庫(kù)中執(zhí)行。用戶(hù)自定義存儲(chǔ)過(guò)程可根據(jù)不同的標(biāo)準(zhǔn)予以分類(lèi):(1)臨時(shí)存儲(chǔ)過(guò)程。是以存儲(chǔ)過(guò)程名#、##開(kāi)頭的存儲(chǔ)過(guò)程。存放在tempdb數(shù)據(jù)庫(kù)中,當(dāng)用戶(hù)斷開(kāi)連接時(shí)將自動(dòng)刪除臨時(shí)存儲(chǔ)過(guò)程。(2)本地存儲(chǔ)過(guò)程。用戶(hù)創(chuàng)建并存放在用戶(hù)當(dāng)前連接的SQLSERVER數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程,是我們通常意義上的存儲(chǔ)過(guò)程。(3)擴(kuò)展存儲(chǔ)過(guò)程。是利用高級(jí)語(yǔ)

8、言(如DELPHI和C++等)編寫(xiě)的存

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。