在ms sql sever的儲存過程中,最好加上事務哦,一般的書上都沒提到這點,以後要注意下:
set xact_abort on
begin transcation
/**中間執行的sql***/
commit transcation
if @@error>0
rollback
set xact_abort
指定當 transact-sql 語句產生執行時錯誤時,microsoft? sql server? 是否自動回滾當前事務
,當設定為on時,如果產生錯誤,則回滾整個事務,為off時,只回滾產生錯誤的sql語句,而事務繼續進行處理。
如果 transact-sql 語句執行成功,則 @@error 系統函式返回 0;如果此語句產生錯誤,則 @@error 返回錯誤號。每乙個 transact-sql 語句完成時,@@error 的值都會改變。
因為每個 transact-sql 語句執行完畢時,@@error 都會得到乙個新的值,@@error 可用以下兩種方法處理:
1.在 transact-sql 語句後,馬上檢測或使用 @@error。
2.在 transact-sql 語句完成後,馬上把 @@error 儲存到乙個整型變數中。此變數的值可供以後使用。
@@error 通常用於表示儲存過程的成功或失敗。整型變數初始化為 0。完成每個 transact-sql 語句後,都要測試 @@error 是否為 0。如果 @@error 不是 0,將被儲存在變數中。儲存過程然後在 return 語句中返回變數。如果過程中的 transact-sql 語句都沒有錯誤,變數保持為 0。如果乙個或多個語句生成錯誤,則變數包含最後的錯誤號。
學習Drupal乙個容易被忽視的問題
剛剛修復了乙個問題,乙個非常小的問題,但我花了2 3小時才查明原因並修復。總結下來我忽視了乙個非常常見的問題或者沒有養成乙個好的習慣。這是乙個非常明顯的許可權問題。我首先來到了許可權設定頁面,admin people permissions 搜尋和forum有關的許可權設定,沒有發現異常,但是請注意...
關於USART很多人都容易忽視的乙個問題
今天這篇文章分享的知識點比較少,但比較重要,是大部分人在實際專案開發中都容易忽視,且容易犯下的低階錯誤。本文講述在專案開發中,或在學習中經常遇到usart傳送字串,對方沒有接收完成 最後一兩位元組 也就是最後位元組資料丟失了。具體可以看下面章節實驗。stm32f10x usart 驗證 usart ...
兩個容易忽視的小問題
兩個容易忽視的小問題 1,在linux系統下,連root使用者無法用su切換到別的使用者,總是報錯密碼不對。後來發現本地配置了winbind服務來跟windows ad域整合,winbind啟動失敗,導致該錯誤發生。很難聯絡到這個原因。2,在oracle的函式裡,to char,to number是...