T SQL 控制流語句

2022-02-13 12:52:47 字數 2760 閱讀 2787

go 關鍵字可以對批量處理的sqlserver 進行分批次處理

declare @i int;

set @i = 1;

go --分批了

print @i --@i在這個批里未定義

輸出:

訊息 137,級別 15,狀態 2,第 1 行

必須宣告標量變數 "@i"

控制流語句不能跨批執行

declare

@iint;  

set@i=1

;  if(@i=1

)   

print('1'

);  

go--

分批了else

print('

不知道'); --else找不到if了,控制流語句不跨批,因此報錯。

輸出結果如下:

1

訊息 156,級別 15,狀態 1,第 1 行

關鍵字 'else' 附近有語法錯誤。

控制流語句也成為流程控制語句,和高階語言中的控制語句類似,引入控制語句,讓t-sql中的語句由順序執行,變為按照控制執行。

1、程式塊執行語句 begion ....end

程式塊語句 用於多條t-sql語句封裝起來構成乙個程式塊。sqlserver在處理時,將整個程式塊視為一條t-sql語句執行。

begin

end

經常與 while或if....else組合起來使用,可以互相巢狀。

2 判斷語句if.....else

判斷語句用於根據條件判斷,是否執行某塊語句

if

邏輯表示式

程式塊1

else

邏輯表示式

程式塊2

3 while迴圈語句

while語句用於執行迴圈,可以根據迴圈條件重複執行語句塊。通常使用break和continue關鍵字在迴圈內部進行控制。

while

《條件表示式》

〈sql語句1〉

break

〈sql語句2〉

continue

〈sql語句3〉

break 控制跳出迴圈,並結束迴圈體

continue 讓語句跳過〈sql語句3〉 開始下次判斷迴圈。

4 分支判斷語句case

case 語句用於執行多條件的分支判斷。

語法格式:

case input_expression

when when_expression

then  result_expression

end

select

id, (

case

when chinese >=

80then'優秀

'when chinese >=

60then'及格

'else

'不及格

'end) as

語文, (

case

when math >=

80then'優秀

'when math >=

60then'及格

'else

'不及格

'end) as

數學, (

case

when english >=

80then'優秀

'when english >=

60then'及格

'else

'不及格

'end) as

英語from fenshu

5、無條件退出語句return

return語句用於使程式從乙個查詢、儲存過程或批量處理中無條件返回,其後面的語句不再執行。如果在儲存過程中使用return語句,那麼此語句可以指定返回給呼叫應用程式、批處理或過程的整數;如果沒有為return指定整數值,那麼該儲存過程將返回0。

儲存過程返回值:

返回值含義

0儲存過程執行成功

-1沒有找到資料庫物件

-2資料型別錯誤

-3程序死鎖錯誤

-4程序死鎖錯誤

-5語法錯誤

-6其他使用者錯誤

-7資源錯誤

-8非致命的內部錯誤

-9達到系統配置引數極限

-10內部一致性致命錯誤

-11內部一致性致命錯誤

-12表或索引崩潰

-13資料庫崩潰

-14硬體錯誤

6、無條件跳轉語句goto

goto語句可以使程式無條件跳轉到指定的程式執行點,增加了程式設計的靈活性。但破壞了程式的結構化,使程式結構變得複雜而且難以測試。

語法:

goto 語句識別符號

使用說明:

語句識別符號可以是數字或者字母的組合,但必須以":"結束。而在goto語句後的識別符號不必帶":"。

注意事項:

goto語句和跳轉標籤可以在儲存過程、批處理或語句塊中的任何地方使用,但不能超出批處理的範圍。

7、延期執行語句waitfor

延期執行有兩種方式,一種是指定時間點,一種是制定時間間隔

waitfor

begin

sql語句

end

waitfor

begin

sql語句

end

T SQL 之 控制流語句

控制流語句也稱為流程控制語句,是和高階程式語言中的類似功能一致的,引入控制流語句將使t sql 有順序執行轉變為按控制執行。批處理 乙個批處理段是由乙個或者多個語句組成的乙個批處理,之所以叫批處理是因為所有語句一次性被提交到乙個sql例項。1 批處理是分批提交到sql server示例,因此在不同的...

T SQL流程控制語句

格式 if 布林表示式 begin endelse begin end示例 declare a int set a 3 if a 2 1 print a為奇數 else print a為偶數 格式 case 表示式 when 常量 then 結果表示式 else 結果表示式 end示例 declar...

T SQL(二)自定義函式的控制流語句

自定義函式 內聯錶值函式 返回值為可更新表。函式內包含單個 select 語句且該語句可更新,則返回的表也可以更新。多語句錶值函式 返回值為不可更新表。函式內包含多個 select 語句且該語句可更新,則返回的表不可更新。標量函式 返回值為標量值。自定義函式由乙個或者多個 t sql 語句構成的子程...