国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

解讀VB實現(xiàn)SQL Server 2000存儲過程調(diào)用

2024-08-31 00:46:17
字體:
供稿:網(wǎng)友

摘要:本文以SQL Server2000存儲過程為例,探討了存儲過程的優(yōu)點,并以Visual Basic6.0程序設(shè)計語言給出了調(diào)用存儲過程的關(guān)鍵代碼。

關(guān)鍵字:數(shù)據(jù)庫;SQL Server2000;存儲過程;應(yīng)用程序;VB。

存儲過程

存儲過程是存儲在服務(wù)器上的一組預(yù)編譯的Transact-SQL語句,是一種封裝重復(fù)任務(wù)操作的方法,支持用戶提供的變量,具有強大的編程功能。它類似于DOS系統(tǒng)中的BAT文件。在BAT文件中,可以包含一組經(jīng)常執(zhí)行的命令,這組命令通過BAT文件的執(zhí)行而被執(zhí)行。同樣的道理,可以把要完成某項任務(wù)的許多Transact-SQL語句寫在一起,組織成存儲過程的形式,通過執(zhí)行該存儲過程就可以完成這項任務(wù)。存儲過程與BAT文件又有差別,即存儲過程已經(jīng)進行了預(yù)編譯。

1、創(chuàng)建存儲過程的方法

在Transact-SQL語言中,創(chuàng)建存儲過程可以使用CREATE PROCEDURE語句,其語法形式如下:

CREATE PROC[EDURE] procedure_name[;number]

[{@parameter data_type}[VARYING][=default][OUTPUT]

]],…n]

[WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]

[FOR REPLICATION]

AS sql_statement[…n]

在上面的CREATE PROCEDURE語句中,方括號"[ ]"中的內(nèi)容是可選的,花括號"{}"中的內(nèi)容是必須出現(xiàn)的,不能省略,[,…n]表示前面的參數(shù)樣式,可以重復(fù)出現(xiàn)。豎線"|"表示兩邊的選項可以任選一個。

下面分析該語句中各種選項的含義。

CREATE PROCEDURE是關(guān)鍵字,也可以寫成CREATE PROC。

procedure_name是該存儲過程的名稱,名稱可以是任何符合命名規(guī)則的標(biāo)示符。名稱后的[;number]參數(shù)表示可以定義一系列的存儲過程名稱,這些存儲過程的數(shù)量由number指定。

參數(shù)名稱可以使用@parameter data_type來指定。在Transact-SQL語言中,用戶定義的參數(shù)名稱前面加"@"符號,這些數(shù)據(jù)類型是Transact-SQL語言允許的各種數(shù)據(jù)類型,包括系統(tǒng)提供的數(shù)據(jù)類型和用戶定義的數(shù)據(jù)類型。

當(dāng)參數(shù)類型為cursor時,必須使用關(guān)鍵字VARYING和OUTPUT。VARYING表示結(jié)果集可以是一個輸出參數(shù),其內(nèi)容是動態(tài)的。該關(guān)鍵字只能在使用游標(biāo)作為數(shù)據(jù)類型時使用。關(guān)鍵字OUTPUT表示這是一個輸出參數(shù),可以把存儲過程執(zhí)行的結(jié)果信息返回應(yīng)用程序。

default用于指定參數(shù)的默認(rèn)值。

RECOMPILE選項表示重新編譯該存儲過程。該選項只是在需要的時候才使用,例如經(jīng)常需要改變數(shù)據(jù)庫模式時。

ENCRYPTION選項用來加密創(chuàng)建存儲過程的文本,防止他人查看。

選項FOR REPLICATION主要用于復(fù)制過程中。注意,該選項不能和選項RECOMPILE同時使用。

AS是一個關(guān)鍵字,表示其后的內(nèi)容是存儲過程的語句。參數(shù)sql-statement[…n]表示在一個存儲過程中可以包含多個Transact-SQL語句。

2、存儲過程的優(yōu)點

在頻繁訪問數(shù)據(jù)庫的系統(tǒng)中,開發(fā)者都樂于使用存儲過程,這與存儲過程的下列優(yōu)點是分不開的。

⑴ 存儲過程可以與其他應(yīng)用程序共享應(yīng)用程序的邏輯,從而確保一致的數(shù)據(jù)訪問和操縱。

⑵ 存儲過程提供了一種安全機制。如果用戶被授予執(zhí)行存儲過程權(quán)限,那么即使該用戶沒有訪問在執(zhí)行該存儲過程中所參考的表或視圖的權(quán)限,該用戶也可以完全執(zhí)行該存儲過程而不受到影響。因此,可以創(chuàng)建存儲過程來完成所有的增加、刪除等操作,并且可以通過編程控制上述操作中對信息的訪問權(quán)限。

⑶ 存儲過程執(zhí)行速度快,便于提高系統(tǒng)的性能。由于存儲過程在第一次執(zhí)行之后,其執(zhí)行規(guī)劃就駐存在過程高速緩沖存儲區(qū)中,在以后的操作中,只需從過程高速緩沖存儲區(qū)中調(diào)用編譯好的二進制形式存儲過程來執(zhí)行。

⑷ 使用存儲過程可以減少網(wǎng)絡(luò)傳輸時間。如果有一千條Transact-SQL語句的命令,一條一條地通過網(wǎng)絡(luò)在客戶機和服務(wù)器之間傳送,那么這種傳輸所耗費的時間將很長。但是,如果把這一千條Transact-SQL語句的命令寫成一條較為復(fù)雜的存儲過程命令,這時在客戶機和服務(wù)器之間網(wǎng)絡(luò)傳輸所需的時間就會大大減少。

共2頁上一頁12下一頁
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳高县| 南部县| 小金县| 克什克腾旗| 修文县| 罗江县| 扬州市| 黑水县| 稷山县| 桦甸市| 南阳市| 胶南市| 合川市| 通许县| 贵溪市| 建湖县| 怀远县| 晋中市| 留坝县| 商丘市| 迁安市| 吴桥县| 宁远县| 湾仔区| 梁河县| 久治县| 张家港市| 介休市| 郓城县| 盈江县| 遵义市| 宜川县| 丰宁| 贵德县| 石屏县| 新丰县| 和田市| 兴安盟| 东阿县| 闽侯县| 邵武市|