最近由于工作需要,簡單了解了下SQL Server 2005 數(shù)據(jù)庫創(chuàng)建簡單的在存儲過程。
一、首先說明如何創(chuàng)建存儲過程:
CREATE PROCEDUER my_pro @inputDate varchar ,
//聲明輸入變量 @Result varchar(255) output
//聲明輸出變量 AS declare @variable1 varchar(255)
//聲明varchar變量 declare @variable2 int
//聲明整形變量 BEGIN IF ...(條件) BEGIN ....(執(zhí)行內(nèi)容) END ELSE BEGIN ....(執(zhí)行內(nèi)容) END END
以上就是創(chuàng)建一個簡單的存儲過程方法。
二、刪除存儲過程 DROP PROCEDURE my_pro
三、執(zhí)行存儲過程
(1)執(zhí)行沒有參數(shù)的存儲過程:EXECUTE my_pro
(2)執(zhí)行有參數(shù)的存儲過程:
EXECUTE my_pro '輸入變量'
(1)執(zhí)行有參數(shù)且有返回值(即有輸出變量)的存儲過程:
declare @Result varchar(1024)
//聲明輸出變量 EXECUTE my_pro '輸入變量' @Result output
//讓該存儲過程輸出值保存到@Result中 select @Result as result
//查詢結(jié)果返回
四、例子下面需要將查詢多條記錄結(jié)果,使用一條返回值進行返回。
例如:有表Test中,其中有兩個字段為Test01與Test02,把Test01 > 10000的記錄,讓查詢Test02結(jié)果進行合并,合并成一條記錄來返回。
則返回結(jié)果為:WSXEDCRFVTGB. Test01 Test02 10000 QAZ 10001 WSX 10002 EDC 10003 RFV 10004 TGB 那么,使用存儲過程,使用存儲過程中的游標,可以進行for循環(huán)來進行多條記錄的合并。將可以解決這個問題。
具體存儲過程如下:
DROP PORCEDURE my_Cursor
//習(xí)慣性,創(chuàng)建之前,先看看該存儲過程是否存在 CREATE PROCEDURE my_Cursor @id int ,
//聲明輸入變量
@Result varchar(255) output
//聲明輸出變量,注意一定要有output關(guān)鍵字,否則默認為輸入變量 AS Declare city_cursor cursor for
–聲明游標變量 Select [Test01] from Test where Test01 > @id
–其中@id為輸入變量 Set @Result = ‘'
–設(shè)置變量@Result值 Declare @Field int
–聲明臨時存放查詢到的Test01的變量 Open city_cursor
–打開游標 Fetch next from city_cursor into @Field
–將實際Test01賦給變量,進行循環(huán) While(@@fetch_status=0)
–循環(huán)開始 BEGIN If @Result = ‘' BEGIN Select @Result = Test02 from Test where Test01 = @Field END ELSE BEGIN Select @Result = @Result + ‘,' + Test02 from Test where Test01 = @Field END Fetch next from city_cursor into @Field
–循環(huán)下一個Test01 END Close city_cursor
–關(guān)閉游標 Deallocate city_cursor
–釋放游標引用 GO (結(jié)束) 以下是執(zhí)行 Declare @Result varchar(1024) EXECUTE my_pro 10000 ,@Result output
–output關(guān)鍵字一定得寫,如果是多個輸入?yún)?shù),則使用“,”號來區(qū)分 Select @Result as result –查詢結(jié)果
您可能感興趣的文章:- SQL Server創(chuàng)建鏈接服務(wù)器的存儲過程示例分享
- 在SQL Server 2005中創(chuàng)建CLR存儲過程的詳細介紹
- sqlserver2008查看表記錄或者修改存儲過程出現(xiàn)目錄名無效錯誤解決方法
- sqlserver 批量刪除存儲過程和批量修改存儲過程的語句
- SQLServer存儲過程創(chuàng)建和修改的實現(xiàn)代碼