儲存過程介紹及asp儲存過程的使用

2021-04-01 23:37:51 字數 2446 閱讀 1378

一、先介紹一下什麼是儲存過程

儲存過程是利用sql server所提供的tranact-sql語言所編寫的程式。tranact-sql語言是sql server提供專為設計資料庫應用程式的語言,它是應用程式和sql server資料庫間的主要程式式設計介面。它好比oracle資料庫系統中的pro-sql和informix的資料庫系統能夠中的informix-4gl語言一樣。這類語言主要提供以下功能,讓使用者可以設計出符合引用需求的程式:

1)、變數說明

2)、ansi相容的sql命令(如select,update….)

3)、一般流程控制命令(if…else…、while….)

4)、內部函式

二、儲存過程的書寫格

create procedure [擁有者.]儲存過程名[;程式編號]

[(引數#1,…引數#1024)]

[with ]

[for replication]

as 程式行

其中儲存過程名不能超過128個字。每個儲存過程中最多設定1024個引數

(sql server 7.0以上版本),引數的使用方法如下:

@引數名 資料型別 [varying] [=內定值] [output]

每個引數名前要有乙個「@」符號,每乙個儲存過程的引數僅為該程式內部使用,引數的型別除了image外,其他sql server所支援的資料型別都可使用。

[=內定值]相當於我們在建立資料庫時設定乙個欄位的預設值,這裡是為這個引數設定預設值。[output]是用來指定該引數是既有輸入又有輸出值的,也就是在呼叫了這個儲存過程時,如果所指定的引數值是我們需要輸入的引數,同時也需要在結果中輸出的,則該項必須為output,而如果只是做輸出引數用,可以用cursor,同時在使用該引數時,必須指定varying和output這兩個語句。

例子:

create procedure order_tot_amt @o_id int,@p_tot int output as

select @p_tot = sum(unitprice*quantity)

from orderdetails

where ordered=@o_id

例子說明:

該例子是建立乙個簡單的儲存過程order_tot_amt,這個儲存過程根據使用者輸入的定單id號碼(@o_id),由定單明細表(orderdetails)中計算該定單銷售總額[單價(unitprice)*數量(quantity)],這一金額通過@p_tot這一引數輸出給呼叫這一儲存過程的程式

三、在sql server中執行儲存過程

在sql server的查詢分析器中,輸入以下**:

declare @tot_amt int

execute order_tot_amt 1,@tot_amt output

select @tot_amt

以上**是執行order_tot_amt這一儲存過程,以計算出定單編號為1的定單銷售金額,我們定義@tot_amt為輸出引數,用來承接我們所要的結果

四、在asp中呼叫儲存過程

<%

dim objcnn

dim objcmd

dim rs

const o_id=112

』-----建立connection物件----------

set objcnn=server.createobject("adodb.connection")

objcnn.open "driver=;server=localhost;uid=sa;pwd=cncanet;database=check;"

』-----建立command物件-----------

set objcmd=server.createobject("adodb.command")

objcmd.activeconnection=objcnn

objcmd.commandtext="order_tot_amt" 』指定儲存過程名稱

objcmd.commandtype=adcmdstoredproc 』其為stored procedure

』-----準備stored procedure 的引數-------

objcmd.createparameter("o_id",adinteger,adparaminput,,o_id)

objcmd.createparameter("p_tot",adbigint,adparamoutput,,0)

』-----執行儲存過程----------------------

objcmd.execute

』-----輸出引數以及處理結果--------------

for each parm in objcmd.parameters

response.write parm.name &"="& trim(parm) &"

" next

%>

儲存過程介紹及asp儲存過程的使用

一 先介紹一下什麼是儲存過程 儲存過程是利用sql server所提供的tranact sql語言所編寫的程式。tranact sql語言是sql server提供專為設計資料庫應用程式的語言,它是應用程式和sql server資料庫間的主要程式式設計介面。它好比oracle資料庫系統中的pro s...

儲存過程介紹及asp儲存過程的使用

一 先介紹一下什麼是儲存過程 儲存過程是利用sql server所提供的tranact sql語言所編寫的程式。tranact sql語言是sql server提供專為設計資料庫應用程式的語言,它是應用程式和sql server資料庫間的主要程式式設計介面。它好比oracle資料庫系統中的pro s...

儲存過程介紹及asp儲存過程的使用

一 先介紹一下什麼是儲存過程 儲存過程是利用sql server所提供的tranact sql語言所編寫的程式。tranact sql語言是sql server提供專為設計資料庫應用程式的語言,它是應用程式和sql server資料庫間的主要程式式設計介面。它好比oracle資料庫系統中的pro s...