国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server 7.0 入門(六)

2024-08-31 00:50:22
字體:
來源:轉載
供稿:網(wǎng)友
建立存儲過程體
       存儲過程邏輯駐留在存儲過程體中。一個存儲過程體中可以包含任意條Transact SQL語句。下面的Transact SQL語句不能在任何存儲過程體中出現(xiàn):
       · CREATE DEFAULT
       · CREATE TRIGGER
       · CREATE PROCEDURE
       · CREATE VIEW
       · CREATE RULE
1、  局部變量
局部變量保持存儲過程中間值。當一個值在存儲過程中需要多次,或者某個查詢的結果需要在隨后的查詢中使用時,需要使用局部變量。在這些情形下,值被存儲在局部變量中,并可用于將來的使用。本地變量的名稱以“@”符號開頭。變量的名稱可以包含字符和數(shù)值。局部變量在使用前需要進行類型聲明。對局部變量進行賦值需要使用SELECT語句。SELECT可以從一個表中檢索出值并將其賦給某個變量,也可以給變量賦一個常量值。一個簡單的SELECT語句可以給多個局部變量賦值。
例如:
DECLARE @var1 integer, @var2 varchar(20)
SELECT @var1 = 32,
           @var2 = ‘MyAge’
如果從SELECT查詢中沒有返回任何數(shù)據(jù),而SELECT又要將數(shù)據(jù)的值賦予局部變量,則該局部變量的值將不會發(fā)生改變。
2、  條件詞句
存儲過程中提供的條件語句包括:
· IF……ELSE語句。
· WHILE語句。
1)  IF……ELSE語句。在該語句中包含三個部分:布爾運算表達式,IF語句塊和ELSE語句塊。語法如下:
IF (boolen_expr)
  {statements}
ELSE
  {statements}
在IF或ELSE語句塊中可以有多條語句,這種情形下,需要語句BEGIN和END來標志語句塊。
2)  WHILE語句。WHILE語句用于處理直到某個條件為TRUE前重復執(zhí)行的語句。語法如下:
WHILE (boolen_expr)
  BEGIN
  statement(s)
BREAK
Statement(s)
CONTINUE
              END
            BEGIN和END語句標志循環(huán)體。BREAK語句結束循環(huán)的執(zhí)行(即走到END語句之后)。CONTINUE語句將控制處理過程回到循環(huán)的開始處(即BEGIN語句的右邊)。
            注意:如果有兩個或多個WHILE循環(huán)被嵌套,則內(nèi)部的BREAK退出的是次外層的循環(huán)。內(nèi)部循環(huán)結束之后的所有語句在內(nèi)部循環(huán)執(zhí)行之后才能繼續(xù)執(zhí)行。

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

DECLARE @num int
SELECT
IF @num = 0
       GOTO Err
ELSE
       BEGIN
       PRINT ‘a(chǎn)uthors found’
       SELECT * FROM authors
       GOTO Last
       END
Err: PRINT ‘no authors found’
Last: PRINT ‘Finish execution’
GO
4、  RETURN語句
RETURN語句用于無條件的退出存儲過程。RETURN之后的任何語句都不再執(zhí)行。RETURN語句可以給調(diào)用語句返回一個值,但不能返回NULL值。SQL Server經(jīng)常為存儲過程返回一個狀態(tài)值。如果成功地執(zhí)行,則返回一個0,如果出現(xiàn)了錯誤,則返回一個為負數(shù)的錯誤碼。
存儲過程返回的錯誤碼

說        明

說        明

0
過程執(zhí)行成功
-8
發(fā)生了非致命的內(nèi)部問題

-1
漏掉了對象
-9
達到了系統(tǒng)極限

-2
發(fā)生了數(shù)據(jù)類型錯誤
-10
發(fā)生了致命的內(nèi)部不一致錯誤

-3
該處理被選擇成了死鎖的犧牲者
-11
發(fā)生了致命的內(nèi)部不一致錯誤

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

-5
發(fā)生了語法錯誤
-13
數(shù)據(jù)庫被破壞

-6
發(fā)生了混雜的用戶錯誤
-14
發(fā)生了硬件錯誤

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


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



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 同德县| 五家渠市| 景东| 泾源县| 沽源县| 芦溪县| 绿春县| 广宁县| 裕民县| 赣州市| 丹寨县| 福泉市| 彭山县| 奉节县| 中阳县| 广南县| 遂溪县| 偃师市| 曲沃县| 东至县| 泰和县| 滕州市| 新化县| 雅安市| 阿城市| 建阳市| 林甸县| 民和| 固始县| 哈巴河县| 神木县| 同心县| 阳信县| 东丰县| 余干县| 景谷| 达尔| 河池市| 利津县| 高平市| 奈曼旗|