欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Sql Server數(shù)據(jù)庫(kù)的存儲(chǔ)過程

系統(tǒng) 2198 0

一、創(chuàng)建存儲(chǔ)過程

CREATE PROC

存儲(chǔ)過程名稱

[參數(shù)列表(多個(gè)以“,”分隔)]

AS?? SQL 語句

例:

?CREATE? PROC ??upGetUserName

@intUserId? INT,

@ostrUserName NVARCHAR(20)? OUTPUT? -- 要輸出的參數(shù)

AS

BEGIN

-- 將uName的值賦給@ostrUserName 變量,即要輸出的參數(shù)

SELECT @ostrUserName=uName FROM uUser WHERE uId=@intUserId

END

其中CREATE PROC 語句(完整語句為 CREATE PROCEDURE)的意思就是告訴SQL SERVER,現(xiàn)在需要建立一個(gè)存儲(chǔ)過程,upGetUserName 就是存儲(chǔ)過程名稱@intUserId 和@ostrUserName 分別是該存儲(chǔ)過程的兩個(gè)參數(shù),注意,在SQL SERVER中,所有用戶定義的變量都以“@”開頭,OUTPUT關(guān)鍵字表示這個(gè)參數(shù)是用來輸出的,AS之后就是存儲(chǔ)過程內(nèi)容了。只要將以上代碼在“查詢分析器”里執(zhí)行一次,SQL SERVER就會(huì)在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為“upGetUserName”的存儲(chǔ)過程。你可以打開“企業(yè)管理器”,選擇當(dāng)前操作的數(shù)據(jù)庫(kù),然后在左邊的樹型列表中選擇“存儲(chǔ)過程”,此時(shí)就可以在右邊的列表中看到你剛剛創(chuàng)建的存儲(chǔ)過程了(如果沒有,刷新一下即可)。

?

二、存儲(chǔ)過程的調(diào)用

之前我們已經(jīng)創(chuàng)建了一個(gè)名為“upGetUserName”的存儲(chǔ)過程,從字面理解該存儲(chǔ)過程的功能是用來取得某一個(gè)用戶的名稱。存儲(chǔ)過程建立好了,接下來就是要在應(yīng)用程序里調(diào)用了,下面看一下在ASP程序里的調(diào)用。

?Dim adoComm '// 創(chuàng)建一個(gè)對(duì)象,我們用來調(diào)用存儲(chǔ)過程

?Set adoComm = CreateObject("ADODB.Command") With adoComm '

// 設(shè)置連接,設(shè)adoConn 為已經(jīng)連接的ADODB.Connection 對(duì)象?

.ActiveConnection = adoConn '

// 類型為存儲(chǔ)過程,adCmdStoredProc = 4

.CommandType = 4 '

// 存儲(chǔ)過程名稱

.CommandText = "upGetUserName"

'// 設(shè)置用戶編號(hào)

.Parameters.Item("@intUserId").Value = 1

'// 執(zhí)行存儲(chǔ)過程

.Execute

'// 取得從存儲(chǔ)過程返回的用戶名稱

Response.Write "用戶名: " & .Parameters.Item("@ostrUserName").Value

End With

'// 釋放對(duì)象

Set adoComm = Nothing

?

三、存儲(chǔ)過程的實(shí)際應(yīng)用

CREATE PROC upUserLogin
@strLoginName? NVARCHAR(20),
@strLoginPwd? NVARCHAR(20),
@blnReturn? BIT OUTPUT
AS
-- 定義一個(gè)臨時(shí)用來保存密碼的變量
DECLARE @strPwd NVARCHAR(20)
BEGIN
-- 從表中查詢當(dāng)前用戶的密碼,賦值給@strPwd變量,下面要對(duì)他進(jìn)行比較
SELECT @strPwd=uLoginPwd FROM uUser WHERE uLoginName=@strLoginName
IF @strLoginPwd = @strPwd
BEGIN
? SET @blnReturn = 1
-- 更新用戶最后登錄時(shí)間
UPDATE uUser SET uLastLogin=GETDATE() WHERE uLoginName=@strLoginName
? END
ELSE
SET @blnReturn = 0
? END
用戶登錄的存儲(chǔ)過程建立好了,現(xiàn)在在程序里試一下吧。注意,在一個(gè)區(qū)域內(nèi)如果有多條語句時(shí),必需使用BEGIN...END關(guān)鍵字。

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

通過以上的步驟,簡(jiǎn)單用戶登錄驗(yàn)證過程也做完了,現(xiàn)在只要把它整合到程序中就可以實(shí)現(xiàn)簡(jiǎn)單的用戶登錄驗(yàn)證了,關(guān)于其他細(xì)節(jié)就由你自己來處理了。

上面介紹的兩個(gè)存儲(chǔ)過程都是只返回一個(gè)值的,下面我們來看一個(gè)返回一個(gè)記錄集的存儲(chǔ)過程。

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

現(xiàn)在我們來看一下ASP程序的調(diào)用。
QUOTE:
Dim adoComm
Dim adoRt
'// 創(chuàng)建一個(gè)對(duì)象,我們用來調(diào)用存儲(chǔ)過程
Set adoComm = CreateObject("ADODB.Command")
Set adoRs = CreateObject("ADODB.Recordset")
With adoComm
'// 設(shè)置連接,設(shè)adoConn 為已經(jīng)連接的ADODB.Connection 對(duì)象
.ActiveConnection = adoConn
'// 類型為存儲(chǔ)過程,adCmdStoredProc = 4
.CommandType = 4
'// 存儲(chǔ)過程名稱
.CommandText = "upGetUserInfos"
'// 設(shè)置用戶組
.Parameters.Item("@intUserGroup").Value = 1
'// 執(zhí)行存儲(chǔ)過程,和以上幾個(gè)例子不同,這里使用RecordSet的Open方法
adoRs.Open adoComm
'// 顯示第一個(gè)值
Response.write adoRs.Fields(0).Value
End With
'// 釋放對(duì)象
Set adoRs = Nothing
Set adoComm = Nothing

?

?

?

?

?

?

?

?

?

?

?

?

Sql Server數(shù)據(jù)庫(kù)的存儲(chǔ)過程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: www.色综合| 李旭个人资料及简介 | 欧美日韩高清一区 | 91中文视频| 国产一级毛片高清视频 | 91精品国产色综合久久不卡蜜臀 | 国产尤物视频 | 久久久久琪琪免费影院 | 毛片a在线 | 久久久日韩精品一区二区 | 天天色天天碰 | 99re在线视频 | 日本在线不卡视频 | 青草视频在线免费观看 | 精品欧美高清一区二区免费 | 天天更新天天久久久更新影院 | 午夜电影免费看 | 天天狠天天干 | 激情视频在线观看网站 | 播五月婷婷 | 妞干网在线观看 | 日日摸日日| 国产精品国产亚洲精品不卡 | 免费一级毛片在线播放视频 | 日韩欧美不卡在线 | 日本黄色三级网站 | 欧美国产中文 | 奇米影视88| www干| 欧美在线一二三区 | 精品久久久久久久久久久久 | 国产拳头交一区二区 | 日韩在线1 | 久久久在线视频 | 精久久久 | 久草2| 色婷婷精品综合久久狠狠 | 精品成人A片久久久久久船舶 | 天天操天天插 | 色视频一区 | 日韩欧美在线免费观看 |