資源描述:
《SQLServer存儲(chǔ)過程返回值總結(jié).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1.存儲(chǔ)過程沒有返回值的情況(即存儲(chǔ)過程語句中沒有return之類的語句)用方法intcount=ExecuteNonQuery(..)執(zhí)行存儲(chǔ)過程其返回值只有兩種情況(1)假如通過查詢分析器執(zhí)行該存儲(chǔ)過程,在顯示欄中假如有影響的行數(shù),則影響幾行count就是幾(2)假如通過查詢分析器執(zhí)行該存儲(chǔ)過程,在顯示欄中假如顯示'命令已成功完成。'則count=-1;在顯示欄中假如有查詢結(jié)果,則count=-1總結(jié):A.ExecuteNonQuery()該方法只返回影響的行數(shù),假如沒有影響行數(shù),則該方法的返回值只能是-1,不會(huì)為0。B.不論ExecuteNonQuery()方法
2、是按照CommandType.StoredProcedure或者CommandType.Text執(zhí)行,其效果和A一樣。---------------------------------------------------------------------------------------------------------------------------------------------------2.獲得存儲(chǔ)過程的返回值--通過查詢分析器獲得(1)不帶任何參數(shù)的存儲(chǔ)過程(存儲(chǔ)過程語句中含有return)---創(chuàng)建存儲(chǔ)過程CREATEPROCEDUREtes
3、tReturnASreturn145GO---執(zhí)行存儲(chǔ)過程DECLARE@RCintexec@RC=testReturnselect@RC---說明查詢結(jié)果為145(2)帶輸入?yún)?shù)的存儲(chǔ)過程(存儲(chǔ)過程語句中含有return)---創(chuàng)建存儲(chǔ)過程createproceduresp_add_table1@in_namevarchar(100),@in_addrvarchar(100),@in_telvarchar(100)asif(@in_name=''or@in_nameisnull)return1elsebegininsertintotable1(name,addr,t
4、el)values(@in_name,@in_addr,@in_tel)return0end---執(zhí)行存儲(chǔ)過程<1>執(zhí)行下列,返回1declare@countintexec@count=sp_add_table1'','中三路',''select@count<2>執(zhí)行下列,返回0declare@countintexec@count=sp_add_table1'','中三路',''select@count---說明查詢結(jié)果不是0就是1(3)帶輸出參數(shù)的存儲(chǔ)過程(存儲(chǔ)過程中可以有return可以沒有return)例子A:---創(chuàng)建存儲(chǔ)過程createproceduresp
5、_output@outputintoutputasset@output=121return1---執(zhí)行存儲(chǔ)過程<1>執(zhí)行下列,返回121declare@outintexecsp_output@outoutputselect@out<2>執(zhí)行下列,返回1declare@outintdeclare@countintexec@count=sp_output@outoutputselect@count---說明有return,只要查詢輸出參數(shù),則查詢結(jié)果為輸出參數(shù)在存儲(chǔ)過程中最后變成的值;只要不查詢輸出參數(shù),則查詢結(jié)果為return返回的值例子B:---創(chuàng)建存儲(chǔ)過程creat
6、eproceduresp_output@outputintoutputasset@output=121---執(zhí)行存儲(chǔ)過程<1>執(zhí)行下列,返回121declare@outintexecsp_output@outoutputselect@out<2>執(zhí)行下列,返回0declare@outintdeclare@countintexec@count=sp_output@outoutputselect@count---說明沒有return,只要查詢輸出參數(shù),則查詢結(jié)果為輸出參數(shù)在存儲(chǔ)過程中最后變成的值;只要不查詢輸出參數(shù),則查詢結(jié)果為0總結(jié):(1)存儲(chǔ)過程共分為3類:A.返回記
7、錄集的存儲(chǔ)過程---------------------------其執(zhí)行結(jié)果是一個(gè)記錄集,例如:從數(shù)據(jù)庫中檢索出符合某一個(gè)或幾個(gè)條件的記錄B.返回?cái)?shù)值的存儲(chǔ)過程(也可以稱為標(biāo)量存儲(chǔ)過程)-----其執(zhí)行完以后返回一個(gè)值,例如:在數(shù)據(jù)庫中執(zhí)行一個(gè)有返回值的函數(shù)或命令C.行為存儲(chǔ)過程-----------------------------------用來實(shí)現(xiàn)數(shù)據(jù)庫的某個(gè)功能,而沒有返回值,例如:在數(shù)據(jù)庫中的更新和刪除操作(2)含有return的存儲(chǔ)過程其返回值為return返回的那個(gè)值(3)沒有return的存儲(chǔ)過程,不論執(zhí)行結(jié)果有無記錄集,其返回值