程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2005 創建簡單的存儲過程--總結分析

SQL Server 2005 創建簡單的存儲過程--總結分析

編輯:關於SqlServer

最近由於工作需要,簡單了解了下SQL Server 2005 數據庫創建簡單的在存儲過程。
一、首先說明如何創建存儲過程:
CREATE PROCEDUER my_pro @inputDate varchar ,
//聲明輸入變量 @Result varchar(255) output
//聲明輸出變量 AS declare @variable1 varchar(255)
//聲明varchar變量 declare @variable2 int
//聲明整形變量 BEGIN IF ...(條件) BEGIN ....(執行內容) END ELSE BEGIN ....(執行內容) END END
以上就是創建一個簡單的存儲過程方法。

二、刪除存儲過程 DROP PROCEDURE my_pro

三、執行存儲過程
(1)執行沒有參數的存儲過程:EXECUTE my_pro
(2)執行有參數的存儲過程:
EXECUTE my_pro '輸入變量'
(1)執行有參數且有返回值(即有輸出變量)的存儲過程:
declare @Result varchar(1024)
//聲明輸出變量 EXECUTE my_pro '輸入變量' @Result output
//讓該存儲過程輸出值保存到@Result中 select @Result as result
//查詢結果返回

四、例子下面需要將查詢多條記錄結果,使用一條返回值進行返回。
例如:有表Test中,其中有兩個字段為Test01與Test02,把Test01 > 10000的記錄,讓查詢Test02結果進行合並,合並成一條記錄來返回。
則返回結果為:WSXEDCRFVTGB. Test01 Test02 10000 QAZ 10001 WSX 10002 EDC 10003 RFV 10004 TGB 那麼,使用存儲過程,使用存儲過程中的游標,可以進行for循環來進行多條記錄的合並。將可以解決這個問題。
具體存儲過程如下:
DROP PORCEDURE my_Cursor
//習慣性,創建之前,先看看該存儲過程是否存在 CREATE PROCEDURE my_Cursor @id int ,
//聲明輸入變量
@Result varchar(255) output
//聲明輸出變量,注意一定要有output關鍵字,否則默認為輸入變量 AS Declare city_cursor cursor for
–聲明游標變量 Select [Test01] from Test where Test01 > @id
–其中@id為輸入變量 Set @Result = ‘'
–設置變量@Result值 Declare @Field int
–聲明臨時存放查詢到的Test01的變量 Open city_cursor
–打開游標 Fetch next from city_cursor into @Field
–將實際Test01賦給變量,進行循環 While(@@fetch_status=0)
–循環開始 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
–循環下一個Test01 END Close city_cursor
–關閉游標 Deallocate city_cursor
–釋放游標引用 GO (結束) 以下是執行 Declare @Result varchar(1024) EXECUTE my_pro 10000 ,@Result output
–output關鍵字一定得寫,如果是多個輸入參數,則使用“,”號來區分 Select @Result as result –查詢結果

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved