存儲過程總結

一、存儲過程返回數據集的方式:sql

    經過數據庫查詢返回數據集;數據庫

    經過局部變量返回;服務器

二、設置output參數的值spa

    輸出參數常常用來從存儲過程當中檢索出結果,若是某個參數在傳輸到存儲過程當中時被定義成output,則對該參數的任何修改在退出存儲以後任然有效。class

   遊標可使用output(輸出)參數,但不能使用成輸入參數。也就是說,遊標能夠做爲結果返回,但卻不能傳輸到過程當中去。當遊標被用做參數時,須要限定其爲output和varying。varying關鍵字指出該結果集要用來支持輸出參數。這樣就提供了將結果集返回到調用過程的能力。 變量

三、經過return參數返回狀態 sql語句

    這是一種從存儲過程返回錯誤碼的方法。存儲過程老是返回一個狀態值,用戶也可使用return語句返回本身的狀態。 語法

四、在存儲過程當中進行錯誤處理 
    如同其它程序同樣,在存儲過程當中進行錯誤處理是很是重要的。系統變動@@error在執行每個transact sql語句以後都會獲得一個值。對於成功的執行,@@error的值爲0,若是出現錯誤,則   @@error中將包含錯誤信息。@@error系統變量對存儲過程的錯誤處理是很是重要的。 
    注意:爲了防止錯誤,@@error所能設置的值在sysmessages表的「error」中反映了出來。 
程序

       在存儲過程當中的錯誤有兩種類型: 
一、數據庫相關的錯誤 
          這些錯誤是由數據庫的不一致性引發的,系統使用非0的@@error值表示特定的數據庫問題。在transact sql執行以後,能夠經過@@error得到所出現的錯誤。若是發現@@error不爲0,則必須採起必要的行動,大多數狀況下,存儲將再也不繼續進行處理而返回。下面的示例展現了典型的獲取數據庫錯誤的方法。該過程將錯誤代碼放置到輸出變量中,這樣,調用程序就可以訪問到。 
方法

二、業務邏輯錯誤          這些錯誤是因爲違反了業務規則而引發的。要獲取這些錯誤,首先須要定義業務規則,基於這些規則,須要在存儲過程當中增長必要的錯誤檢測代碼。人們常常使用raiserror語句通報這些錯誤。raiserror提供了返回用戶定義錯誤及將@@error變量設置成用戶定義錯誤號的能力。錯誤消息能夠被動態地創建,或者基於錯誤號從「sysmessages」表中檢索到。一旦出現了錯誤,錯誤就會以一種服務器錯誤消息的方式返回到客戶機。下面是raiserror命令的語法:

相關文章
相關標籤/搜索