最近在做vb項(xiàng)目的時(shí)候,用到了存儲(chǔ)過程的調(diào)試,現(xiàn)在總結(jié)一下發(fā)現(xiàn)單步調(diào)試存儲(chǔ)過程有以下2種方法:

創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為克井企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè),克井網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
1.這種方法自己已經(jīng)做過,是可以的,如下:
a.如果目標(biāo)數(shù)據(jù)庫(kù)存在存儲(chǔ)過程,右擊該存儲(chǔ)過程-修改,打開存儲(chǔ)過程,并在需要的地方設(shè)置斷點(diǎn)。(如果沒有自定義存儲(chǔ)過程,則需要在Sql Server 2012數(shù)據(jù)庫(kù)中創(chuàng)建存儲(chǔ)過程,完成后在里面設(shè)置斷點(diǎn));
b.另外開啟一個(gè)新建查詢窗口,寫入調(diào)用代碼:例如???exec?BillManageInputProc?'主單1','0111111','0111112','121','legend','2014-09-24','001','2014-09-24','1','市場(chǎng)部','0' ,單擊 調(diào)試按鈕 啟動(dòng)存儲(chǔ)過程的調(diào)試;
c.單擊?F?11?進(jìn)行逐句調(diào)試。
2.在vs2010調(diào)試存儲(chǔ)過程步驟如下:
首先,打開vs,點(diǎn)擊 視圖--服務(wù)器資源管理器
create
procedure
prCreateSubPlan
as
begin
declare
@id
int,
@intCycle
int,
@planName
varchar(100),
@createTime
smalldatetime,
@cycleTime
int
select
@id
=
min(t_cplan_id)
from
t_cplan
while
(@id
is
not
null)
begin
select
@planName=t_plan_name,
@createTime
=
createTime,
@cycleTime
=
cycleTime
from
t_cplan
where
t_cplan_id=@id
select
@intCycle=
while
(@intCycle@cycleTime)
begin
--
表t_plan
列t_plan_id是IDENTITY
列
insert
t_plan
(t_plan_name,
t_cplan_id,
createTime)
values
(@planName,
@id,
dateadd(day,
@intCycle,
@createTime))
select
@intCycle
=
@intCycle
+
1
end
select
@id
=
min(t_cplan_id)
from
t_cplan
where
t_cplan_id@id
end
end
go
q 定義存儲(chǔ)過程的語(yǔ)法
CREATE PROC[EDURE] 存儲(chǔ)過程名
@參數(shù)1 數(shù)據(jù)類型 = 默認(rèn)值,
…… ,
@參數(shù)n 數(shù)據(jù)類型 OUTPUT
AS
SQL語(yǔ)句
GO
q 和C語(yǔ)言的函數(shù)一樣,參數(shù)可選
q 參數(shù)分為輸入?yún)?shù)、輸出參數(shù)
q 輸入?yún)?shù)允許有默認(rèn)值
創(chuàng)建不帶參數(shù)的存儲(chǔ)過程
CREATE PROCEDURE proc_stu /*proc_stu為存儲(chǔ)過程的名稱*/
AS
DECLARE @writtenAvg float,@labAvg float /*筆試平均分和機(jī)試平均分變量 */
SELECT @writtenAvg=AVG(writtenExam),
@labAvg=AVG(labExam) FROM stuMarks
print '筆試平均分:'+convert(varchar(5),@writtenAvg)
print '機(jī)試平均分:'+convert(varchar(5),@labAvg)
IF (@writtenAvg70 AND @labAvg70)
print '本班考試成績(jī):優(yōu)秀' /*顯示考試成績(jī)的等級(jí) */
ELSE
print '本班考試成績(jī):較差'
print '--------------------------------------------------'
print ' 參加本次考試沒有通過的學(xué)員:'
SELECT stuName,stuInfo.stuNo,writtenExam,labExam /*顯示未通過的學(xué)員 */
FROM stuInfo INNER JOIN stuMarks ON
stuInfo.stuNo=stuMarks.stuNo
WHERE writtenExam60 OR labExam60
GO
調(diào)用存儲(chǔ)過程
q EXECUTE(執(zhí)行)語(yǔ)句用來調(diào)用存儲(chǔ)過程
q 調(diào)用的語(yǔ)法
EXEC 過程名 [參數(shù)]
創(chuàng)建帶參數(shù)的存儲(chǔ)過程
q 存儲(chǔ)過程的參數(shù)分兩種:
q 輸入?yún)?shù)
q 輸出參數(shù)
q 輸入?yún)?shù):
用于向存儲(chǔ)過程傳入值,類似C語(yǔ)言的按值傳遞;
q 輸出參數(shù):
用于在調(diào)用存儲(chǔ)過程后,
返回結(jié)果,類似C語(yǔ)言的
按引用傳遞;
打開SQL server management studio,連接到數(shù)據(jù)庫(kù),展開想要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù),找到【可編程性】-【存儲(chǔ)過程】的菜單
請(qǐng)點(diǎn)擊輸入圖片描述
在第一步找到的【存儲(chǔ)過程】菜單項(xiàng)上面,點(diǎn)擊鼠標(biāo)右鍵,依次選擇【新建】-【存儲(chǔ)過程】,就可以開始創(chuàng)建存儲(chǔ)過程了
請(qǐng)點(diǎn)擊輸入圖片描述
當(dāng)點(diǎn)擊了第二步的【存儲(chǔ)過程】之后,在右側(cè)就會(huì)出現(xiàn)一個(gè)新的窗口,而且默認(rèn)有好多的代碼和注釋,這些就是sqlserver默認(rèn)創(chuàng)建的存儲(chǔ)過程的結(jié)構(gòu)和注釋
請(qǐng)點(diǎn)擊輸入圖片描述
對(duì)于第三步看到的存儲(chǔ)過程結(jié)構(gòu),因?yàn)槭怯⑽牡模赡芸粗容^吃力。本文特意做了一個(gè)中文的翻譯對(duì)照版本,同時(shí)增加了一下設(shè)置項(xiàng)的解釋。
1)SET ANSI_NULLS ON:意思是空值NULL在匹配NULL條件的時(shí)候返回false,這種判斷null就需要使用 is null 或者 is not null
2)SET ANSI_NULLS OFF:意思是空值NULL在匹配NULL條件的時(shí)候返回true
3)SET QUOTED_IDENTIFIER ON:意思是如果內(nèi)容與sqlserver的關(guān)鍵字相同,允許通過加雙引號(hào)、單引號(hào)的方式加以區(qū)分
4)SET QUOTED_IDENTIFIER OFF:意思是與sqlserver的關(guān)鍵字相同的,不允許加雙引號(hào),也就是自定義的不允許與關(guān)鍵字重復(fù)
5)SET NOCOUNT ON:意思是不返回影響的行數(shù)
6)SET NOCOUNT OFF:意思是要返回影響的行數(shù)
請(qǐng)點(diǎn)擊輸入圖片描述
此處僅僅創(chuàng)建一個(gè)簡(jiǎn)單的演示存儲(chǔ)過程,名字叫做usp_SimpleStoreProcedure,擁有一個(gè)整型的傳入?yún)?shù) @x,存儲(chǔ)過程直接返回傳入?yún)?shù)乘以10倍的結(jié)果。寫完存儲(chǔ)過程之后,按F5就可以將其存儲(chǔ)到數(shù)據(jù)庫(kù)中
請(qǐng)點(diǎn)擊輸入圖片描述
在第二步中找到的【存儲(chǔ)過程】菜單下面找到第5步創(chuàng)建的存儲(chǔ)過程名字usp_SimpleStoreProcedure,在這個(gè)名字上面點(diǎn)擊鼠標(biāo)右鍵,選擇【執(zhí)行存儲(chǔ)過程】
請(qǐng)點(diǎn)擊輸入圖片描述
緊接著,會(huì)彈出一個(gè)【執(zhí)行過程】的界面,里面有存儲(chǔ)過程的參數(shù),在【值】這一列輸入想要傳入的參數(shù)值,比如10,然后點(diǎn)擊【確定】按鈕,就可以看到執(zhí)行結(jié)果100了。
注意:假設(shè)是使用sql語(yǔ)句執(zhí)行存儲(chǔ)過程,直接使用這樣的語(yǔ)句就行了: EXEC [dbo].[usp_SimpleStoreProcedure] @x = 10
請(qǐng)點(diǎn)擊輸入圖片描述
文章題目:sqlserver存儲(chǔ)過程,sqlserver存儲(chǔ)過程for循環(huán)
分享網(wǎng)址:http://chinadenli.net/article18/dsipggp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、關(guān)鍵詞優(yōu)化、Google、全網(wǎng)營(yíng)銷推廣、商城網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)