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即可。
错误代码详解很容易就能找到。
代码如下:
Createprocsp_Insert_Course @Nochar(10), @Namevarchar(20), @Commentvarchar(50), @rtnintoutput as begintry insertintoCoursevalues(@No,@Name,@Comment) set@rtn=1endtry begincatch set@rtn=@@ERROR
–辅助信息
selectERROR_LINE()asLine, ERROR_MESSAGE()asmessage1, ERROR_NUMBER()asnumber, ERROR_PROCEDURE()asproc1, ERROR_SEVERITY()asseverity, ERROR_STATE()asstate1 endcatch
3、存储过程执行
相关代码如下:
declare @rtnint execsp_Insert_Course'114','语文','',@rtnoutput print@rtn
执行结果:
正常的情况下,返回值为1,如果已经存在编号为“114”的数据,就会返回 ERROR_CODE:2627,其他的异常情况会返回相应的代码。
4、说明
如果程序有异常,把异常代码返回,然后再进行相关的处理即可。
SQL Server中的异常处理和别的数据库(如Oracle)的有点差异,但是基本思想差不多, 在***捕获都可以得到异常。
关于SQL Server数据库存储过程的异常处理的知识就介绍到这里了,希望本次的介绍能够对您有所帮助。
【编辑推荐】
- SQL Server数据库ROW_NUMBER()函数使用详解详解xtrabackup对MySQL进行备份和恢复的全过程SQL Server数据库DATEDIFF的参数介绍及使用示例SQL Server将视图或表的记录不重复地插入到另一个表SQL Server中CROSS APPLY和OUTER APPLY的应用详解