第十四章

控制項語法

•預設情況下,Adaptive Server的執行語法是按照順序

•T-SQL有以下的控制項

–if…else

–begin…end

–if exists

–while

–break

–continue

–return

if…else

•允許兩個或兩個以上分支條件執行

if condition

block_to_execute_when_condition_is_true

[ else

block_to_execute_when_condition_is_false ]

•你要建入的if的分支有三個或更多的分支可以使用else

if condition

block_to_execute_when_condition_is_true

[ else if

block_to_execute_when_condition_is_false ]

[ else

block_to_execute_when_condition_is_false ]

•最多可以使用150分支

begin…end

•begin…end讓您定義多個陳述式區塊

begin

statement

end

if exists

•if exists檢查看如果一個給定的條件下匹配數據存在

if [ not ] exists ( select_statement )

code_to_execute_when_condition_is_ture

[ else

code_to_exceute_when_condition_is_false ]

•常使用在建立一個資料庫物件之前檢查是否已經存在

•查詢系統資料表sysobjects

while

•while重複執行一組陳述直到條件變為假

while condition

block_to_execute

•可能出現的錯誤

•一個無限迴圈,是一個永遠執行循環

break

•break是使用跳脫while迴圈

continue

•continue是用來返回while迴圈的下一個循環

return

•return會使執行退出批次或存儲過程

select

•返回有用的資訊

select {“user_message” | variable_name | column_list}

•可以回傳任意組合text,變數值和資料表中的數據

print

•用來回傳除錯訊息

•文字或變數

print {“user_message” | variable_name}

•print使用的變數必須是char或varchar

•參數列表

print “user_message”, argument_list

•佔位符表示插入參數

–必須在%n格式!其中:

•n是一個整數,1 – 20

•n的值是使用順序

•參數可以是任何text或image數據類型除了

–參數暫時轉換為char

raiserror

•消息窗口返回有用的錯誤消息

raiserror error_number {“error_message” | variable} [, argument_list]

•raiserror返回兩條信息

–Error number 儲存在 @@error

–使用者自定的錯誤訊息,會回傳給使用者

•錯誤消息可能會或可能不會被重用,取決於他們指定地方

–只有在指定在raiserror語句 - 不可重用

–在sysusermessages表 - 可重複使用的指定

•信息編號必須是20000或更大

•如果消息不在sysusermessages儲存,那麼它每次使用時都必須指定

•新增

sp_addmessage message_number, “error_message”

•刪除

sp_dropmessage message_number

•返回可重複使用的錯誤訊息

raiserror error_number [, argument_list]

•訊息編號必需要定義在sysusermessages