7 0入門(六) 建立儲存過程體

2021-04-17 03:26:40 字數 2161 閱讀 3411

建立儲存過程體

儲存過程邏輯駐留在儲存過程體中。乙個儲存過程體中可以包含任意條transactsql語句。下面的transactsql語句不能在任何儲存過程體中出現:

·createdefault

·createtrigger

·createprocedure

·createview

·createrule

1、 區域性變數

區域性變數保持儲存過程中間值。當乙個值在儲存過程中需要多次,或者某個查詢的結果需要在隨後的查詢中使用時,需要使用區域性變數。在這些情形下,值被儲存在區域性變數中,並可用於將來的使用。本地變數的名稱以「@」符號開頭。變數的名稱可以包含字元和數值。區域性變數在使用前需要進行型別宣告。對區域性變數進行賦值需要使用select語句。select可以從乙個表中檢索出值並將其賦給某個變數,也可以給變數賦乙個常量值。乙個簡單的select語句可以給多個區域性變數賦值。

例如:declare@var1integer,@var2varchar(20)

select@var1=32,

@var2=『myage』

如果從select查詢中沒有返回任何資料,而select又要將資料的值賦予區域性變數,則該區域性變數的值將不會發生改變。

2、 條件詞句

儲存過程中提供的條件語句包括:

·if……else語句。

·while語句。

1) if……else語句。在該語句中包含三個部分:布林運算表示式,if語句塊和else語句塊。語法如下:

if(boolen_expr)

else

在if或else語句塊中可以有多條語句,這種情形下,需要語句begin和end來標誌語句塊。

2) while語句。while語句用於處理直到某個條件為true前重複執行的語句。語法如下:

while(boolen_expr)

begin

statement(s)

break

statement(s)

continue

endbegin和end語句標誌迴圈體。break語句結束迴圈的執行(即走到end語句之後)。continue語句將控制處理過程回到迴圈的開始處(即begin語句的右邊)。

注意:如果有兩個或多個while迴圈被巢狀,則內部的break退出的是次外層的迴圈。內部迴圈結束之後的所有語句在內部迴圈執行之後才能繼續執行。

3、 goto語句

在儲存過程的執行中,語句是順序執行的。goto語句則是用來打破這種語句執行的順序,它立即跳到某條語句上執行,而這條語句往往不緊跟在前一語句之後。goto語句與乙個標誌(label)一起使用,該標誌用來標識一條語句。

例如:usepubs

godeclare@numint

select

if@num=0

gotoerr

else

begin

print『authorsfound』

select*fromauthors

gotolast

enderr:print『noauthorsfound』

last:print『finishexecution』

go4、 return語句

return語句用於無條件的退出儲存過程。return之後的任何語句都不再執行。return語句可以給呼叫語句返回乙個值,但不能返回null值。sqlserver經常為儲存過程返回乙個狀態值。如果成功地執行,則返回乙個0,如果出現了錯誤,則返回乙個為負數的錯誤碼。

儲存過程返回的錯誤碼

值說    明

值說    明

0過程執行成功

-8發生了非致命的內部問題

-1漏掉了物件

-9達到了系統極限

-2發生了資料型別錯誤

-10發生了致命的內部不一致錯誤

-3該處理被選擇成了死鎖的犧牲者

-11發生了致命的內部不一致錯誤

-4發生了許可權錯誤

-12表或索引被破壞

-5發生了語法錯誤

-13被破壞

-6發生了混雜的使用者錯誤

-14發生了錯誤

-7資源錯誤,如空間不夠等

5、 使用游標(cursor)在需要一行一行處理時,游標十分有用。游標可以開啟乙個結果集合(按照指定的標準選擇的行),並提供在結果集中一行一行處理的功能。基於游標的型別,可以對其進行回滾或者前進。在使用游標時需要5個步驟:

MS SQL入門基礎 建立儲存過程

在ms sql server 2000 中,建立乙個儲存過程有兩種方法 一種是使用transaction sql 命令create procedure,另一種是使用圖形化管理工具enterprise manager。用transaction sql 建立儲存過程是一種較為快速的方法,但對於初學者,使...

儲存過程入門

1.寫第乙個儲存過程 create proc query table as select from mytable go2.在查詢分析器裡執行儲存過程 exec query book 3.寫個帶引數的儲存過程 create procedure dbo query param id int as se...

儲存過程入門

create procedure procedue name parameter data type output with assql statement 解釋 output 表示此引數是可傳回的.with recompile 表示每次執行此儲存過程時都重新編譯一次 encryption 所建立的...