SQL Server存儲(chǔ)過(guò)程學(xué)習(xí)筆記

什么是SQL Server存儲(chǔ)過(guò)程

是一種完成特定功能的SQL語(yǔ)句的集合,可視為批處理文件。類似于Java中的方法,可以有參數(shù)輸入值,輸出值,和輸入輸出值。

SQL Server存儲(chǔ)過(guò)程的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

1.降低網(wǎng)絡(luò)流量,存儲(chǔ)過(guò)程代碼直接存儲(chǔ)于數(shù)據(jù)庫(kù)中,在客戶端與服務(wù)器的通信過(guò)程中,不會(huì)產(chǎn)生大量的T_SQL代碼流量。
2.加快系統(tǒng)運(yùn)行速度,存儲(chǔ)過(guò)程只在創(chuàng)建時(shí)編譯,以后每次執(zhí)行時(shí)不需要重新編譯。
3.可以多次調(diào)用。

缺點(diǎn)

1.無(wú)法移植到其他數(shù)據(jù)庫(kù)中。
2.代碼可讀性差,不易維護(hù)。

分類

分為系統(tǒng)存儲(chǔ)過(guò)程,與自定義存儲(chǔ)過(guò)程,和擴(kuò)展存儲(chǔ)過(guò)程。

1.系統(tǒng)存儲(chǔ)過(guò)程以'sp_'開頭,是系統(tǒng)創(chuàng)建的存儲(chǔ)過(guò)程,目的在于能夠方便的從系統(tǒng)表中查詢信息或完成與更新數(shù)據(jù)庫(kù)表相關(guān)的管理任務(wù)或其他的系統(tǒng)管理任務(wù)。
2.擴(kuò)展存儲(chǔ)過(guò)程是以在SQL SERVER環(huán)境外執(zhí)行的動(dòng)態(tài)連接(DLL文件)來(lái)實(shí)現(xiàn)的,可以加載到SQL SERVER實(shí)例運(yùn)行的地址空間中執(zhí)行,擴(kuò)展存儲(chǔ)過(guò)程可以用SQL SERVER擴(kuò)展存儲(chǔ)過(guò)程API編程,擴(kuò)展存儲(chǔ)過(guò)程以前綴"xp_"來(lái)標(biāo)識(shí),對(duì)于用戶來(lái)說(shuō),擴(kuò)展存儲(chǔ)過(guò)程和普通話存儲(chǔ)過(guò)程一樣,可以用相同的方法來(lái)執(zhí)行。

基本語(yǔ)法

創(chuàng)建,定義變量,使用輸入、輸出參數(shù)
create proc|procedure proc_name(
    --變量用@符號(hào)標(biāo)識(shí)
    @id int=100,    --輸入?yún)?shù) 有默認(rèn)值
    @name varchar2(50) out,    --輸出參數(shù)
    @school varchar2(50)='東軟%' output;    --輸入輸出參數(shù)  默認(rèn)值可以使用通配符
)
as    --該存儲(chǔ)過(guò)程所要執(zhí)行的內(nèi)容
    select * from student;
go    --類似于結(jié)束符
--執(zhí)行帶該返回值的存儲(chǔ)過(guò)程
--1.定義變量
declare @stu_name int,    --declare定義變量用來(lái)接收輸出參數(shù)
        @stu_school varchar2(50);    --可以寫在一個(gè)關(guān)鍵字里 注意,與;的使用
set @stu_school='清華'  --給定義的變量賦值
--2.執(zhí)行存儲(chǔ)過(guò)程
exec proc_name 99,@stu_name out,@stu_school output;    --方式一按順序輸入?yún)?shù)
--exec proc_name @school=@stu_school output,@id=99;    --方式二不按位置輸出參數(shù)
--3.查詢輸出值
select @stu_name,@stu_school
創(chuàng)建帶游標(biāo)的存儲(chǔ)過(guò)程
水平有限,過(guò)后補(bǔ)上

引用

參考1
參考2
參考3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,819評(píng)論 18 399
  • 本端到端教程說(shuō)明如何使用 Azure 門戶來(lái)預(yù)配運(yùn)行 SQL Server 的虛擬機(jī)。 Azure 虛擬機(jī) (VM...
    ITknight閱讀 825評(píng)論 0 0
  • 存儲(chǔ)過(guò)程是一組預(yù)先編輯好的SQL語(yǔ)句組成,編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中。 存儲(chǔ)過(guò)程可包含程序流、邏輯及對(duì)數(shù)據(jù)庫(kù)的查詢。它們...
    肉肉要次肉閱讀 4,579評(píng)論 0 1
  • 今天要討論的話題是:英語(yǔ)不專業(yè)的父母如何逆襲成為孩子的英語(yǔ)老師? 14年英語(yǔ)老師的身份使得自己平時(shí)總會(huì)留意一些帶孩...
    Windy的故事閱讀 396評(píng)論 0 0

友情鏈接更多精彩內(nèi)容