欧美三区_成人在线免费观看视频_欧美极品少妇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)論
主站蜘蛛池模板: 久久亚洲在线 | 欧美黄色网 | 日本九九视频 | 第一次破處在线国语视频播放 | 国产高清网址 | 午夜精品视频 | 亚洲欧美日韩高清一区二区三区 | 亚洲国产综合久久精品 | 五月婷婷丁香在线 | 国产1级片| 亚洲欧美日韩精品一区 | 亚洲精品国产偷自在线观看 | 成人欧美一区在线视频在线观看 | 91中文字幕在线 | 日日舔夜夜摸 | 亚洲精品国产福利在线观看 | 欧美不卡| 婷婷天天操 | 天天干夜夜爽 | 国产 福利 在线 | 黑色丝袜美女被视频网站 | 成人性生交大片 | 欧美交性又色又爽又黄 | 精品不卡| 日韩第一页在线 | 久草www | 狠狠操天天操 | 另类五月天| 天天射夜夜骑 | 三级黄色一级视频 | 91精品国模一区二区三区 | 日韩免费在线观看视频 | 久久综合色之久久综合 | 免费观看一区二区三区毛片 | 99热这里只有免费国产精品 | 亚洲欧美激情精品一区二区 | 日韩在线免费播放 | 亚洲成人精品 | 久久人人爽人人爽人人 | 久久毛片网站 | 欧美激情无码成人A片 |