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語句執行。
beginend
經常與 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
selectid, (
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
延期執行有兩種方式,一種是指定時間點,一種是制定時間間隔
waitforbegin
sql語句
end
waitforbegin
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 語句構成的子程...