close

首先打開安裝好的Microsoft SQL Server Management Studio連上資料庫,然後進入已經建好的資料庫中,對資料庫選單中的"可程式性"-->"預存程序"點滑鼠右鍵,選擇"新增預存程序",相關畫面如下圖一:

SP1.jpg

(圖一)

如下圖二就會進入建立Store Procedure的實際畫面.下圖個顏色框框說明如下:

紅色框框: store Procedure的名稱,以後呼叫要用的

紫色框框: 傳入和回傳參數的宣告區

黃色框框: 實際執行SQL語法位置

SP2.jpg

(圖二)

如下圖三,Store Procedure的名稱我是定義 Get_Customer2,傳遞的參數有兩個@Customer VARCHAR(30)@UserName VARCHAR(30) OUTPUT,傳遞的參數名稱前固定要加上@,接著參數的名稱,然後是參數的格式,多個參數宣告要用逗號去跟分開,第二個參數OUTPUT是宣告這是要回傳用的。如果只有傳入就不用宣告OUTPUTWITH RECOMPILE是讓宣告每次執行這個Store Procedure都要先編譯過內容。SELECT @UserName=UserName FROM Customer WHERE CustomerNO=@Customer 就是實際要執行的SQL內容, @UserName=UserName這是把UserName的內容放進之前宣告的@UserName裡去, CustomerNO=@Customer是把傳入參數@Customer當成條件值給SQL去比對CustomerNO。一般SQL查詢都會有資料集,以上的範例是把特定欄位資料透過參數回傳。確定好Store Procedure都寫好就下圖三中的左上角黃色框框的"執行"鍵,沒有問題就會顯示如圖三下方的"命令已順利完成。"訊息。

SP3.jpg

(圖三)

接下來要檢查是否有按想法執行,這裡有兩種方式可以檢查

  • 用執行預存程序的方式

如下圖四所示,對準已經產生的預存程序名稱按下滑鼠右鍵,選擇"執行預存程序"

SP4.jpg

           (圖四)

接著如下圖五會有兩個參數,跟上面宣告的傳入和回傳參數相同名稱,第一個參數在"值"的地方輸入要測試的值,第二個參數是要回傳的就不用輸入,接著按下視窗最下面的確定鍵。

SP5.jpg

(圖五)

接著如下圖六會有輸出執行結果,@UserName是我們宣告的,那還有一個是Return Value,那是MS SQL內建的東西,不管有無宣告在Store Procedure都會存在,如果有需要可以在Store Procedure裡去改變它。

SP6.jpg

(圖六)

  • 用執行SQL查詢的方式去呼叫Store Procedure

如下圖七,declare @RetuenName varchar(30) 先宣告一個用來回傳的變數, exec就是用來呼叫Store Procedure,exec get_customer2 '0702250071',@RetuenName output, get_customer2就是Store Procedure名稱, '0702250071',@RetuenName output是傳遞的兩個參數, 第二個要回傳所以要宣告成output,print @RetuenName這一行就是顯示出參數@RetuenName的值,都輸入後按下畫面的"執行"鍵,接著就會顯示出@RetuenName的值在畫面下方。完整語法如下:

declare @RetuenName varchar(30)
exec get_customer2 '0702250071',@RetuenName output
print @RetuenName

SP7.jpg

(圖七)

arrow
arrow
    文章標籤
    MS SQL Store Procedure
    全站熱搜

    大衛的記事 發表在 痞客邦 留言(0) 人氣()