SQL Server存储过程中的异常处理

系统 1906 0

编程的异常处理很重要,当然Sql语句中存储过程的异常处理也很重要,明确的异常提示能够快速的找到问题的根源,节省很多时间……

  编程的异常处理很重要,当然Sql语句中存储过程的异常处理也很重要,明确的异常提示能够快速的找到问题的根源,节省很多时间。

  下面,我就以一个插入数据为例来说明Sql Server中的存储过程怎么捕获异常的 。

1、环境

  数据库为Sql Server2008。

  表(Course)结构为:

  No char(10) primary key

  Name varchar(20)

  Comment varchar(50)

 2、存储过程

  就以插入数据为例,其他的可以照着写就行了。

  编程语言都有异常的捕获与处理, 在 SqlServer2008 中也是这样子的。

  对会出现异常的语句加上 begin try……end try ,然后进行异常捕捉:begin catch……end catch即可。

  错误代码详解 很容易就能找到。

  代码如下:

 

以下是代码片段:

Create proc sp_Insert_Course
@No char(10),
@Name varchar(20),
@Comment varchar(50),
@rtn int output
as
begin try
insert into Course values(@No,@Name,@Comment)
set @rtn=1
end try
begin catch
set @rtn=@@ERROR

--辅助信息
--select ERROR_LINE() as Line,
-- ERROR_MESSAGE() as message1,
-- ERROR_NUMBER() as number,
-- ERROR_PROCEDURE() as proc1,
-- ERROR_SEVERITY() as severity,
-- ERROR_STATE() as state1
end catch

 

 3、存储过程执行

  相关代码如下:

 

以下是代码片段:

declare
@rtn int
exec sp_Insert_Course '114','语文','',@rtn output
print @rtn

 

  执行结果:

  正常的情况下,返回值为1,

  如果已经存在编号为“114”的数据,就会返回 ERROR_CODE:2627,

  其他的异常情况会返回相应的代码

 4、说明

  如果程序有异常,把异常代码返回,然后再进行相关的处理即可。

  SQL Server中的异常处理和别的数据库(如Oracle)的有点差异,但是基本思想差不多, 在最后捕获都可以得到异常。

SQL Server存储过程中的异常处理


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论