萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp編程 >> SQLSERVER存儲過程及調用詳解

SQLSERVER存儲過程及調用詳解

 使用SQLSERVER存儲過程可以很大的提高程序運行速度,簡化編程維護難度,現已得到廣泛應用。
  存儲過程其實就是保存起來的可以接受和返回用戶提供的參數的 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

  通過以上兩步,我們已經可以創建和使用簡單的存儲過程了。下面我們來看一個稍微復雜點的存儲過程,以進一步了解存儲過程的應用。
 

copyright © 萬盛學電腦網 all rights reserved