帶您學(xué)習(xí)SQL存儲(chǔ)過(guò)程
學(xué)習(xí)SQL數(shù)據(jù)庫(kù),SQL存儲(chǔ)過(guò)程是不能不提到的,Sql Server的存儲(chǔ)過(guò)程是一個(gè)被命名的存儲(chǔ)在服務(wù)器上的Transacation-Sql語(yǔ)句集合,是封裝重復(fù)性工作的一種方法,它支持用戶(hù)聲明的變量、條件執(zhí)行和其他強(qiáng)大的編程功能。
SQL存儲(chǔ)過(guò)程相對(duì)于其他的數(shù)據(jù)庫(kù)訪問(wèn)方法有以下的優(yōu)點(diǎn):
(1)重復(fù)使用。存儲(chǔ)過(guò)程可以重復(fù)使用,從而可以減少數(shù)據(jù)庫(kù)開(kāi)發(fā)人員的工作量。
(2)提高性能。存儲(chǔ)過(guò)程在創(chuàng)建的時(shí)候就進(jìn)行了編譯,將來(lái)使用的時(shí)候不用再重新編譯。一般的SQL語(yǔ)句每執(zhí)行一次就需要編譯一次,所以使用存儲(chǔ)過(guò)程提高了效率。
(3)減少網(wǎng)絡(luò)流量。SQL存儲(chǔ)過(guò)程位于服務(wù)器上,調(diào)用的時(shí)候只需要傳遞存儲(chǔ)過(guò)程的名稱(chēng)以及參數(shù)就可以了,因此降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
(4)安全性。參數(shù)化的SQL存儲(chǔ)過(guò)程可以防止SQL注入式的攻擊,而且可以將Grant、Deny以及Revoke權(quán)限應(yīng)用于存儲(chǔ)過(guò)程。
存儲(chǔ)過(guò)程一共分為了三類(lèi):用戶(hù)定義的存儲(chǔ)過(guò)程、擴(kuò)展存儲(chǔ)過(guò)程以及系統(tǒng)存儲(chǔ)過(guò)程。
其中,用戶(hù)定義的SQL存儲(chǔ)過(guò)程又分為T(mén)ransaction-SQL和CLR兩種類(lèi)型。
Transaction-SQL 存儲(chǔ)過(guò)程是指保存的Transaction-SQL語(yǔ)句集合,可以接受和返回用戶(hù)提供的參數(shù)。
CLR存儲(chǔ)過(guò)程是指對(duì).Net Framework公共語(yǔ)言運(yùn)行時(shí)(CLR)方法的引用,可以接受和返回用戶(hù)提供的參數(shù)。他們?cè)?Net Framework程序集中是作為類(lèi)的公共靜態(tài)方法實(shí)現(xiàn)的。
【編輯推薦】