資源描述:
《sqlserver存儲過程及調(diào)用詳解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、SQLSERVER存儲過程及調(diào)用詳解:????????使用SQLSERVER存儲過程可以很大的提高程序運行速度,簡化編程維護難度,現(xiàn)已得到廣泛應(yīng)用。 存儲過程其實就是保存起來的可以接受和返回用戶提供的參數(shù)的?Transact-SQL?語句的集合。? 可以創(chuàng)建一個過程供永久使用,或在一個會話中臨時使用(局部臨時過程),或在所有會話中臨時使用(全局臨時過程)。? 也可以創(chuàng)建在?Microsoft?SQL?Server?啟動時自動運行的存儲過程。? 要使用存儲過程,首先我們必需熟悉一些基本的T-SQL語句,因為存儲過程是由于一組T-SQL語句構(gòu)成的,并且,我們需要了解一些關(guān)于函數(shù)、過程的
2、概念,因為我們需要在應(yīng)用程序中調(diào)用存儲過程,就像我們調(diào)用應(yīng)用程序的函數(shù)一樣,不過調(diào)用的方法有些不同。? 下面我們來看一下存儲過程的建立和使用方法。?一、創(chuàng)建存儲過程? 和數(shù)據(jù)表一樣,在使用之前我們需要創(chuàng)建存儲過程,它的簡明語法是:?引用:?Create?PROC?存儲過程名稱?????[參數(shù)列表(多個以“,”分隔)]?AS?SQL?語句?例:?引用:?Create?PROC?upGetUserName?@intUserId????????INT,?@ostrUserName?NVARCHAR(20)?OUTPUT????????????????--?要輸出的參數(shù)?AS?BEGIN???
3、??????--?將uName的值賦給?@ostrUserName?變量,即要輸出的參數(shù)?????????Select?@ostrUserName=uName?FROM?uUser?Where?uId=@intUserId?END? 其中?Create?PROC?語句(完整語句為Create?PROCEDURE)的意思就是告訴SQL?SERVER,現(xiàn)在需要建立一個存儲過程,upGetUserName?就是存儲過程名稱,@intUserId?和?@ostrUserName?分別是該存儲過程的兩個參數(shù),注意,在SQL?SERVER中,所有用戶定義的變量都以“@”開頭,OUTPUT關(guān)鍵字表示這
4、個參數(shù)是用來輸出的,AS之后就是存儲過程內(nèi)容了。只要將以上代碼在“查詢分析器”里執(zhí)行一次,SQL?SERVER就會在當(dāng)前數(shù)據(jù)庫中創(chuàng)建一個名為“upGetUserName”的存儲過程。你可以打開“企業(yè)管理器”,選擇當(dāng)前操作的數(shù)據(jù)庫,然后在左邊的樹型列表中選擇“存儲過程”,此時就可以在右邊的列表中看到你剛剛創(chuàng)建的存儲過程了(如果沒有,刷新一下即可)。?二、存儲過程的調(diào)用? 之前我們已經(jīng)創(chuàng)建了一個名為“upGetUserName”的存儲過程,從字面理解該存儲過程的功能是用來取得某一個用戶的名稱。存儲過程建立好了,接下來就是要在應(yīng)用程序里調(diào)用了,下面看一下在ASP程序里的調(diào)用。?引用:?Dim?
5、adoComm?’//?創(chuàng)建一個對象,我們用來調(diào)用存儲過程?Set?adoComm?=?CreateObject("ADODB.Command")?With?adoComm?????????’//?設(shè)置連接,設(shè)?adoConn?為已經(jīng)連接的?ADODB.Connection?對象?????????.ActiveConnection?=?adoConn?????????’//?類型為存儲過程,adCmdStoredProc?=?4?????????.CommandType?=?4?????????’//?存儲過程名稱?????????.CommandText?=?"upGetUserName
6、"?????????’//?設(shè)置用戶編號?????????.Parameters.Item("@intUserId").Value?=?1?????????’//?執(zhí)行存儲過程?????????.Execute??????????????????’//?取得從存儲過程返回的用戶名稱?????????Response.Write?"用戶名:"?&?.Parameters.Item("@ostrUserName").Value?End?With?’//?釋放對象?Set?adoComm?=?Nothing? 通過以上兩步,我們已經(jīng)可以創(chuàng)建和使用簡單的存儲過程了。下面我們來看一個稍微復(fù)雜點的存
7、儲過程,以進一步了解存儲過程的應(yīng)用。三、存儲過程的實際應(yīng)用? 用戶登錄在ASP項目中經(jīng)常會使用到,相信很多朋友也都做過類似的系統(tǒng),但使用存儲過程來做驗證朋友可能不多,那么我們就以它來做例子,寫一個簡單的用戶登錄驗證的存儲過程。?引用:?Create?PROC?upUserLogin?@strLoginName????????NVARCHAR(20),?@strLoginPwd????????NVARCHAR(20),?