SQL Server 7.0 入門(六)

黄舟
發布: 2016-12-24 17:40:04
原創
944 人瀏覽過

建立儲存程序體
       預存程序邏輯駐留在儲存程序體中。一個儲存過程體中可以包含任意條Transact SQL語句。以下的Transact SQL語句無法在任何預存程序體中出現:
       · CREATE DEFAULT
       ·CREATE TRIGGER
         · CREATE RULE
1、  局部變數
局部變數維持預存程序中間值。當一個值在預存過程中需要多次,或某個查詢的結果需要在後續的查詢中使用時,就需要使用局部變數。在這些情況下,值被儲存在局部變數中,並可用於將來的使用。本地變數的名稱以“@”符號開頭。變數的名稱可以包含字元和數值。局部變數在使用前需要進行類型宣告。對局部變數進行賦值需要使用SELECT語句。 SELECT可以從一個表格中檢索出值並將其賦給某個變量,也可以將變數賦予常數值。一個簡單的SELECT語句可以給多個局部變數賦值。
例如:
DECLARE @var1 integer, @var2 varchar(20)
SELECT @var1 = 32,
           @var2 = 'MyAge'
如果從局部值傳回變量,則該局部變量的值將不會改變。
2、  條件詞句
儲存過程中提供的條件語句包括:
· IF…ELSE語句。
· WHILE語句。
1)  IF…ELSE語句。在該語句中包含三個部分:布林運算表達式,IF語句區塊和ELSE語句區塊。語法如下:
IF (boolen_expr)
  {statements}
ELSE
  {statements}
在IF或ELSE語句區塊中可以有多條語句,這種情形下,需要語句BEGIN和END來標誌語句區塊。
2)  WHILE語句。 WHILE語句用來處理直到某個條件為TRUE前重複執行的語句。文法如下:
WHILE (boolen_expr)
  BEGIN
  statement(s)
BREAK
Statement(s)
CONTINUE
      BEGIN和END語句標誌循環體。 BREAK語句結束迴圈的執行(即走到END語句之後)。 CONTINUE語句將控制處理過程回到迴圈的開始處(即BEGIN語句的右邊)。
            則:若有兩個或多個WHILE循環嵌套,則內部的BREAK退出的是次外層的循環。內部迴圈結束之後的所有語句在內部迴圈執行之後才能繼續執行。

3、  GOTO語句
在儲存程序的執行中,語句是依序執行的。 GOTO語句則是用來打破這種語句執行的順序,它立即跳到某條語句上執行,而這條語句往往不緊跟在前一語句之後。 GOTO語句與一個標誌(Label)一起使用,該標誌用來識別一條語句。
例如:
USE pubs
GO

DECLARE @num int
SELECT
IF @num = 0
       authors found'
       SELECT * FROM authors
       GOTO Last
       END
Err: PRINTINTINTINT ' no authors found'
Last: PRINT 'Finish execution'
GO
4、  RETURN語句
RETURN語句用於無條件的退出預存程序。 RETURN之後的任何語句都不再執行。 RETURN語句可以給呼叫語句回傳一個值,但不能傳回NULL值。 SQL Server經常會為預存程序傳回一個狀態值。如果成功地執行,則傳回一個0,如果出現了錯誤,則傳回一個為負數的錯誤碼。
儲存程序回傳的錯誤碼
值 
說        明 
值 
說        明 -1 
漏掉了對象 
-9 
達到了系統極限 

-2 
發生了資料類型錯誤 
-10 
發生了致命的內部不一致錯誤 

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

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

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

-4 
發生了權限錯誤 
-12 
表或索引被破壞 

-5 
發生了語法錯誤 
-13 
資料庫被破壞 
發生了語法錯誤 
-13 
資料庫被破壞 
發生了語法錯誤 
-13 
資料庫破壞 

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

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


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

 以上就是SQL Server 7.0 入門(六)的內容,更多相關內容請關注PHP中文網(www.php.cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板