SQL SERVER數據庫開發之存儲過程的應用
一、創建存儲過程
和數據表一樣,在使用之前我們需要創建存儲過程,它的簡明語法是:
CREATE PROC 存儲過程名稱 [參數列表(多個以“,”分隔)]ASSQL 語句例如
CREATE PROC upGetUserName@intUserId;;;;;INT,@ostrUserName NVARCHAR(20) OUTPUT;;;;;-- 要輸出的參數ASBEGIN -- 將uName的值賦給 @ostrUserName 變量,即要輸出的參數 SELECT @ostrUserName=uName FROM uUser WHERE uId=@intUserIdEND其中 CREATE PROC 語句(完整語句為CREATE PROCEDURE)的意思就是告訴SQL SERVER,現在需要建立一個存儲過程,upGetUserName 就是存儲過程名稱,@intUserId 和 @ostrUserName 分別是該存儲過程的兩個參數,注意,在SQL SERVER中,所有用戶定義的變量都以“@”開頭,OUTPUT關鍵字表示這個參數是用來輸出的,AS之后就是存儲過程內容了。只要將以上代碼在“查詢分析器”里執行一次,SQL SERVER就會在當前數據庫中創建一個名為“upGetUserName”的存儲過程。你可以打開“企業管理器”,選擇當前操作的數據庫,然后在左邊的樹型列表中選擇“存儲過程”,此時就可以在右邊的列表中看到你剛剛創建的存儲過程了(如果沒有,刷新一下即可)。
三、存儲過程的實際應用
用戶登錄在ASP項目中經常會使用到,相信很多朋友也都做過類似的系統,但使用存儲過程來做驗證朋友可能不多,那么我們就以它來做例子,寫一個簡單的用戶登錄驗證的存儲過程。
CREATE PROC upUserLogin@strLoginName;;;;;NVARCHAR(20),@strLoginPwd;;;;;NVARCHAR(20),@blnReturn;;;;;BIT OUTPUTAS-- 定義一個臨時用來保存密碼的變量DECLARE @strPwd NVARCHAR(20)BEGIN -- 從表中查詢當前用戶的密碼,賦值給 @strPwd 變量,下面要對他進行比較 SELECT @strPwd=uLoginPwd FROM uUser WHERE uLoginName=@strLoginName
IF @strLoginPwd = @strPwd BEGIN SET @blnReturn = 1 -- 更新用戶最后登錄時間 UPDATE uUser SET uLastLogin=GETDATE() WHERE uLoginName=@strLoginName END ELSE SET @blnReturn = 0END