程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 用SQL Server處理數據層錯誤

用SQL Server處理數據層錯誤

編輯:關於SqlServer

開發人員在努力做到妥善地處理意外,這樣用戶就不用擔心天書般的系統錯誤信息。出於這個原因,異常處理是每個.NET應用程序的一個標准部分。Try/catch塊讓你能夠捕捉異常並從該點控制應用程序的執行。與數據庫進行交互操作的時候會發生很多錯誤,但是很多開發人員都不知道如何處理數據庫層的錯誤。本文我們將探討如何利用SQLServer和T-SQL來處理你數據庫代碼裡的錯誤。

處理T-SQL裡的錯誤

SQLServer的SQL對話讓你能夠輕松地處理可能會在存儲進程、函數裡發生的非致命錯誤,但是並不是所有的錯誤都很容易處理。事實上,致命和非致命的錯誤有很多。什麼是致命的,什麼是非致命的,對此沒有很完備的文檔說明,但是你的應用程序代碼總是可以利用try/catch塊來處理致命的數據庫錯誤。對於其他所有的錯誤,你可以使用下面的技術。

事務

你應該在數據庫代碼裡使用事務,以確保在一切都沒有問題的時候所有的更改都被完成。SQLServer的在線幫助將事務描述為任務的一個邏輯單元,它由一系列語句(選擇、插入、更新,或者刪除等)組成。如果在事務期間沒有發生任何錯誤,那麼對事務的所有改動都會成為數據庫的永久部分。如果在這期間發生了錯誤,不會對數據庫進行任何修改。

事務包含在BEGIN TRANSACTION和END TRANSACTION語句之間。ROLLBACK TRANSACTION語句可以取消所有的更改,因此不會發生任何變化。用COMMIT TRANSACTION語句可以進行永久的更改。現在,就讓我們把注意力放在如何處理T-SQL裡的錯誤上。

@@Error

@@Error函數讓你可以實現T-SQL錯誤處理。它會返回由系統所返回的錯誤代碼。如果沒有錯誤發生就會返回“0”。@@Error函數必須緊接在一個語句之後立即被調用,因為它會在每個T-SQL語句之後被清除。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved