SQL Server數據庫存儲過程的異常處理


 

SQL Server數據庫存儲過程異常處理是非常重要的,明確的異常提示能夠幫助我們快速地找到問題的根源,節省很多時間。本文我們就以一個插入數據為例來說明SQL Server中的存儲過程怎么捕獲異常的,接下來就讓我們來一起了解一下這部分內容吧。

1、環境

數據庫為SQL Server 2008,表的結構為:

No char(10)  primary key

Name varchar(20)

Comment varchar(50)

2、存儲過程

就以插入數據為例,其他的可以照着寫就行了。

編程語言都有異常的捕獲與處理,在 SqlServer2008 中也是這樣子的。

對會出現異常的語句加上 begin try……end try ,然后進行異常捕捉:begin catch……end catch即可。

錯誤代碼詳解很容易就能找到。

代碼如下:

  1. Create proc sp_Insert_Course  
  2. @No char(10),  
  3. @Name varchar(20),  
  4. @Comment varchar(50),  
  5. @rtn int output  
  6. as  
  7. begin try  
  8. insert into Course values(@No,@Name,@Comment)  
  9. set @rtn=
  10. end try  
  11. begin catch  
  12. set @rtn=@@ERROR 

--輔助信息

  1. select ERROR_LINE() as Line,  
  2. ERROR_MESSAGE() as message1,  
  3. ERROR_NUMBER() as number,  
  4. ERROR_PROCEDURE() as proc1,  
  5. ERROR_SEVERITY() as severity,  
  6. ERROR_STATE() as state1  
  7. end catch 

 

3、存儲過程執行

相關代碼如下:

 

  1. declare  
  2. @rtn int  
  3. exec sp_Insert_Course '114','語文','',@rtn output  
  4. print @rtn 

 

執行結果:

正常的情況下,返回值為1,如果已經存在編號為“114”的數據,就會返回 ERROR_CODE:2627,其他的異常情況會返回相應的代碼。

4、說明

如果程序有異常,把異常代碼返回,然后再進行相關的處理即可。

SQL Server中的異常處理和別的數據庫(如Oracle)的有點差異,但是基本思想差不多, 在最后捕獲都可以得到異常。 

關於SQL Server數據庫存儲過程的異常處理的知識就介紹到這里了,希望本次的介紹能夠對您有所幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM