什么是存儲過(guò)程,存儲過(guò)程有什么功能,下面我們來(lái)介紹一下。
1.什么是存儲過(guò)程
在開(kāi)發(fā)SQL Server應用程序過(guò)程中,T-SQL語(yǔ)句是應用程序與SQL Server數據庫之間使用的主要編程接口。應用程序與SQL Server數據庫交互執行某些操作有兩種方法:一種是存儲在本地的應用程序記錄操作命令,應用程序向SQLServer發(fā)送每一個(gè)命令,并對返回的數據進(jìn)行處理;另一種是在SQLServer中定義某個(gè)過(guò)程,其中記錄了一系列的操作,每次應用程序只需調用該過(guò)程就可完成該操作。這種在SQLServer中定義的過(guò)程被稱(chēng)為存儲過(guò)程。
2.存儲過(guò)程的功能
SQL Server中的存儲過(guò)程類(lèi)似于編程語(yǔ)言中的過(guò)程和函數,它具有以下功能:
· 接受輸入參數并返回多個(gè)輸出值。
· 包含T-SQL語(yǔ)句用以完成特定的SQL Server操作。
· 返回一個(gè)指示成功與否及失敗原因的狀態(tài)代碼給調用它的過(guò)程。
存儲過(guò)程是一組預編譯的Transact-SQL語(yǔ)句,主體構成是標準SQL命令,同時(shí)包括SQL的擴展:語(yǔ)句塊、結構控制命令、變量、常量、運算符、表達式、流程控制等,所有這些組合在一起用于構造存儲過(guò)程。
3.存儲過(guò)程的優(yōu)點(diǎn)
存儲過(guò)程有以下幾個(gè)優(yōu)點(diǎn):
· 允許模塊化編程,增強代碼的重用性和共享性
· 使用存儲過(guò)程可以加快運行速度
· 使用存儲過(guò)程可以減少網(wǎng)絡(luò )流量。
· 存儲過(guò)程可以作為安全性機制。
4.存儲過(guò)程的分類(lèi)
存儲過(guò)程有以下幾種類(lèi)型:系統存儲過(guò)程、用戶(hù)存儲過(guò)程、臨時(shí)存儲過(guò)程、擴展存儲過(guò)程、遠程存儲過(guò)程。
系統存儲過(guò)程是由系統提供的過(guò)程,可以作為命令直接執行。系統存儲過(guò)程還可以作為模板存儲過(guò)程,指導用戶(hù)如何編寫(xiě)有效的存儲過(guò)程。系統存儲過(guò)程存儲在master數據庫中,其前綴為sp_。系統存儲過(guò)程可以在任意一個(gè)數據庫中執行。本書(shū)附錄B給出了常用的系統存儲過(guò)程。
用戶(hù)存儲過(guò)程是創(chuàng )建在用戶(hù)數據庫中的存儲過(guò)程。其名稱(chēng)前面一般不加sp_前綴。主要在應用程序中使用,以完成特定的任務(wù)。
臨時(shí)存儲過(guò)程屬于用戶(hù)存儲過(guò)程。如果用戶(hù)存儲過(guò)程前面加上符號“#”,則該存儲過(guò)程稱(chēng)為局部臨時(shí)存儲過(guò)程,只能在一個(gè)用戶(hù)會(huì )話(huà)中使用;如果用戶(hù)存儲過(guò)程前面加上符號“##”,則該過(guò)程稱(chēng)為全局存儲過(guò)程,可以在所有用戶(hù)會(huì )話(huà)中使用。
擴展存儲過(guò)程是在SQL Server環(huán)境之外執行的動(dòng)態(tài)鏈接庫DLL,其前綴為xp_。盡管這些動(dòng)態(tài)鏈接庫在SQL Server環(huán)境之外,但它們可以被加載到SQL Server系統中,并且按照存儲過(guò)程的方式執行。
遠程存儲過(guò)程是指從遠程服務(wù)器上調用的存儲過(guò)程,或者是從連接到另外一個(gè)服務(wù)器上的客戶(hù)機上調用的存儲過(guò)程,是非本地服務(wù)器上的存儲過(guò)程。
下面主要介紹用戶(hù)存儲過(guò)程的創(chuàng )建、修改、刪除等操作。
聯(lián)系客服