亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

SQL SERVER數據庫開發之存儲過程應用

添加時間:2013-2-4 14:08:47  添加: 思海網絡 

  可能有不少朋友使用SQL SERVER做開發也已經有段日子,但還沒有或者很少在項目中使用存儲過程,或許有些朋友認為根本沒有必要使用存儲過程等等。其實當你一個項目做完到了維護階段時,就會發現存儲過程給我們帶來了好處了,修改方便,不能去改我們的應用程序,只需要改存儲過程的內容,而且還可以使我們的程序速度得到提高。

  引用:
SQL SERVER 聯機叢書中的定義:
  存儲過程是保存起來的可以接受和返回用戶提供的參數的 Transact-SQL 語句的集合。
  可以創建一個過程供永久使用,或在一個會話中臨時使用(局部臨時過程),或在所有會話中臨時使用(全局臨時過程)。
  也可以創建在 Microsoft SQL Server 啟動時自動運行的存儲過程。 
 


  要使用存儲過程,首先我們必需熟悉一些基本的T-SQL語句,因為存儲過程是由于一組T-SQL語句構成的,并且,我們需要了解一些關于函數、過程的概念,因為我們需要在應用程序中調用存儲過程,就像我們調用應用程序的函數一樣,不過調用的方法有些不同。
  下面我們來看一下存儲過程的建立和使用方法。
一、創建存儲過程
  和數據表一樣,在使用之前我們需要創建存儲過程,它的簡明語法是:

  引用:
CREATE PROC 存儲過程名稱
    [參數列表(多個以“,”分隔)]
AS
SQL 語句
 


例:

  引用:
CREATE PROC upGetUserName
@intUserId        INT,
@ostrUserName NVARCHAR(20) OUTPUT                -- 要輸出的參數
AS
BEGIN
        -- 將uName的值賦給 @ostrUserName 變量,即要輸出的參數
        SELECT @ostrUserName=uName FROM uUser WHERE uId=@intUserId
END
 


  其中 CREATE PROC 語句(完整語句為CREATE PROCEDURE)的意思就是告訴SQL SERVER,現在需要建立一個存儲過程,upGetUserName 就是存儲過程名稱,@intUserId 和 @ostrUserName 分別是該存儲過程的兩個參數,注意,在SQL SERVER中,所有用戶定義的變量都以“@”開頭,OUTPUT關鍵字表示這個參數是用來輸出的,AS之后就是存儲過程內容了。只要將以上代碼在“查詢分析器”里執行一次,SQL SERVER就會在當前數據庫中創建一個名為“upGetUserName”的存儲過程。你可以打開“企業管理器”,選擇當前操作的數據庫,然后在左邊的樹型列表中選擇“存儲過程”,此時就可以在右邊的列表中看到你剛剛創建的存儲過程了(如果沒有,刷新一下即可)。
二、存儲過程的調用
  之前我們已經創建了一個名為“upGetUserName”的存儲過程,從字面理解該存儲過程的功能是用來取得某一個用戶的名稱。存儲過程建立好了,接下來就是要在應用程序里調用了,下面看一下在ASP程序里的調用。

  引用:
Dim adoComm
'// 創建一個對象,我們用來調用存儲過程
Set adoComm = CreateObject("ADODB.Command")
With adoComm
        '// 設置連接,設 adoConn 為已經連接的 ADODB.Connection 對象
        .ActiveConnection = adoConn
        '// 類型為存儲過程,adCmdStoredProc = 4
        .CommandType = 4
        '// 存儲過程名稱
        .CommandText = "upGetUserName"
        '// 設置用戶編號
        .Parameters.Item("@intUserId").Value = 1
        '// 執行存儲過程
        .Execute
        '// 取得從存儲過程返回的用戶名稱
        Response.Write "用戶名:" & .Parameters.Item("@ostrUserName").Value
End With
'// 釋放對象
Set adoComm = Nothing
 


  通過以上兩步,我們已經可以創建和使用簡單的存儲過程了。下面我們來看一個稍微復雜點的存儲過程,以進一步了解存儲過程的應用。
三、存儲過程的實際應用
  用戶登錄在ASP項目中經常會使用到,相信很多朋友也都做過類似的系統,但使用存儲過程來做驗證朋友可能不多,那么我們就以它來做例子,寫一個簡單的用戶登錄驗證的存儲過程。

  引用:
CREATE PROC upUserLogin
@strLoginName        NVARCHAR(20),
@strLoginPwd        NVARCHAR(20),
@blnReturn                BIT OUTPUT
AS
-- 定義一個臨時用來保存密碼的變量
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 = 0
END
 


  用戶登錄的存儲過程建立好了,現在在程序里試一下吧。注意,在一個區域內如果有多條語句時,必需使用BEGIN...END關鍵字。

  引用:
Dim adoComm
'// 創建一個對象,我們用來調用存儲過程
Set adoComm = CreateObject("ADODB.Command")
With adoComm
        '// 設置連接,設 adoConn 為已經連接的 ADODB.Connection 對象
        .ActiveConnection = adoConn
        '// 類型為存儲過程,adCmdStoredProc = 4
        .CommandType = 4
        '// 存儲過程名稱
        .CommandText = "upUserLogin"
        '// 設置登錄名稱
        .Parameters.Item("@strLoginName").Value = "admin"
        '// 設置登錄密碼
        .Parameters.Item("@strLoginPwd").Value = "123456"
        '// 執行存儲過程
        .Execute
        '// 判斷是否登錄成功
        If .Parameters.Item("@blnReturn").Value = 1 Then
                Response.Write "恭喜你,登錄成功!"
        Else
                Response.Write "不是吧,好像錯了哦。。。"
        End If
End With
'// 釋放對象
Set adoComm = Nothing
 


  通過以上的步驟,簡單用戶登錄驗證過程也做完了,現在只要把它整合到程序中就可以實現簡單的用戶登錄驗證了,關于其他細節就由你自己來處理了。
  上面介紹的兩個存儲過程都是只返回一個值的,下面我們來看一個返回一個記錄集的存儲過程。

  引用:
CREATE PROC upGetUserInfos
@intUserGroup        INT
AS
BEGIN
        -- 從數據庫中抽取符合條件的數據
        SELECT uName,uGroup,uLastLogin FROM uUser WHERE uGroup=@intUserGroup
        -- 插入一列合計
        UNION
        SELECT '合計人數:',COUNT(uGroup),NULL FROM uUser WHERE uGroup=@intUserGroup
END
 


  現在我們來看一下ASP程序的調用。

  引用:
Dim adoComm
Dim adoRt
'// 創建一個對象,我們用來調用存儲過程
Set adoComm = CreateObject("ADODB.Command")
Set adoRs = CreateObject("ADODB.Recordset")
With adoComm
        '// 設置連接,設 adoConn 為已經連接的 ADODB.Connection 對象
        .ActiveConnection = adoConn
        '// 類型為存儲過程,adCmdStoredProc = 4
        .CommandType = 4
        '// 存儲過程名稱
        .CommandText = "upGetUserInfos"
        '// 設置用戶組
        .Parameters.Item("@intUserGroup").Value = 1
        '// 執行存儲過程,和以上幾個例子不同,這里使用RecordSet的Open方法
        adoRs.Open adoComm
        '// 顯示第一個值
        Response.write adoRs.Fields(0).Value
End With
'// 釋放對象
Set adoRs = Nothing
Set adoComm = Nothing
 


  怎么樣,是不是也很簡單呢,不過存儲過程的用處不僅僅只有這些,他還有更強大的功能,比如使用游標、臨時表來從多個表,甚至是多個數據庫中調用數據,然后返回給用戶,這些你可以在使用過程中慢慢的去發掘。
關鍵字:數據庫、SQL SERVER、存儲過程

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站